1

eclipseLinkmoxyを使用して抽象クラスを拡張しているクラスをマーシャリングしようとしています。

public abstract class AbstractExample {
  private String fieldA;
  private String fieldB;

  // Getters, setters 
}

public class Example extends AbstractExample {
  private String fieldC;
  private String fieldD;

  // More fields, getters and setters
}

私はマッピングにxmlを使用します:

<java-type name="com.example.Example">
  <xml-root-element name="com.another.package.Example2" />
  <java-attributes>
    <!-- All fields defined here -->
  </java-attributes>
</java-type>

これで、マーシャリングを解除するときにすべてが正常になります。オブジェクトをマーシャリングしているときに問題が発生します。それ以外の

<com.another.package.Example2> 

私が取得するルート要素のみ

<Example2> 

ルート要素として。興味深いこと-​​抽象クラスからExampleにフィールドをプッシュし、extends AbstractExampleキーワードを削除するとすぐに、ルートが本来あるべき姿になります。

<com.another.package.Example2>.  

私は何か間違ったことをしていますか?私は本当に抽象クラスを拡張する必要があります。そうしないと、コードに多くの冗長性があります。

4

1 に答える 1

0

注: 私はEclipseLink JAXB(MOXy)のリーダーです。

この問題は、次のMOXyバグであることが判明しました。

この問題は、EclipseLink2.3.3および2.4.0ストリームで修正されました。明日(2012年2月25日)から毎晩ダウンロードできるようになります。

于 2012-02-24T20:02:13.193 に答える