web-dev-qa-db-ja.com

jaxb.in​​dexファイルを使用するにはどうすればよいですか?

私は得ています

_javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index
_

JAXBContext.newInstance(String contextPath)を使用してJAXBContextを作成しようとしています。 jaxb.in​​dexファイルを作成および維持するための「通常の」方法があると思います。

26
loosenut

Jaxb.in​​dexファイルは、JAXBアノテーションを持つ、含まれているパッケージ内のクラスの単なるリストです。

ファイルの各行はクラスの単純な名前であり、完全修飾名ではありません。

詳しくはこちらをご覧ください: http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html

36
Rafael M

この方法を試してください、

JAXBContext context = JAXBContext.newInstance(new Class[] {your.package.Test.class});

また、@XmlRootElementをTestクラスに追加します。

@XmlRootElement
class Test {
  private String ...;
  private int ......;
}

Java 1.5を使用していることも確認してください

15
Hari

メソッドに正しいクラスを渡していることを確認してください。 XMLルート要素がXMLRootであるとすると、次のように呼び出します。

JAXBContext context = JAXBContext.newInstance(XMLRoot.class);

また、使用しているJavaのバージョンに対応するJAXBコンパイラ(xjc)の正しいバージョンを使用していることを確認してください。古いコンパイラからJAXBで生成されたクラスは正しく機能しません。 Java 6のJAXBを使用すると、同じエラーが発生します。

4
Andrew Coleson