-1

项目设置:

项目域包含所有没有 jibx 配置的域对象。

Class A {
  List<A> list;
}

项目 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 项目并修改绑定文件时。有用。

4

1 回答 1

-5

根据这封电子邮件

只要您只使用公共字段或方法,JiBX 就应该能够使用 jar 中的类。如果这些字段不是公共的,您需要切换到公共的 get/set 方法(如果可用)或解压缩类文件,以便 JiBX 绑定编译器可以修改它们。

在 Java 中,有 getter 和 setter 是标准的,所以我建议你添加它们。

于 2013-11-07T16:46:15.813 回答