项目设置:
项目域包含无 jibx 配置的所有域对象。
Class A {
List<A> list;
}
Project JibxTest 包含 jibx 配置及其域.jar
当我们尝试在 JibxTest 项目中配置绑定时.xml如下所示:
<binding>
<mapping name="A" class="Domains.A" ordered="false">
<collection item-type="Domains.A" field="list" usage="optional" create- type="java.util.ArrayList"/>
</mapping>
</binding>
我们得到 JIBX 异常:
Error during code generation for file 'C:JIBXTest/binding.xml' -
[bind] this may be due to an error in your binding or classpath, or to an error in the JiBX code ***
[bind] java.lang.IllegalStateException: Internal error - cannot modify class Domains.A loaded from C:JIBXTestlibDomains.jar
当我们将 Domain.A 类复制到 JibxTest 项目中并修改绑定文件时。它有效。
根据这封电子邮件:
JiBX 应该能够处理 jar 中的类,只要 您仅使用公共字段或方法。如果字段不是公共的, 您需要切换到公共获取/设置方法(如果可用)或 解压缩类文件,以便 JiBX 绑定编译器可以修改它们。
在Java中,有getter和setter是标准的,所以我建议你添加它们。