项目设置:
Project Domains包含所有没有jibx配置的域对象。
Class A {
List<A> list;
}
Project JibxTest包含jibx配置,其中包含Domains.jar
当我们尝试在Project JibxTest中配置binding.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:\JIBXTest\lib\Domains.jar
当我们将Domain.A类复制到JibxTest项目并修改绑定文件时。 它有效。
答案 0 :(得分:-5)
JiBX应该能够使用jar中的类 你只使用公共领域或方法。如果字段不公开, 你需要切换到公共get / set方法(如果可用)或 解开类文件,以便JiBX绑定编译器可以修改它们。
在Java中,拥有getter和setter是标准的,所以我建议你添加它们。