web-dev-qa-db-ja.com

JAXBを使用する場合、常にObjectFactoryクラスが必要ですか?

JAXBを使用する場合、常にObjectFactoryクラスが必要ですか?

それがないと、この例外が発生します。

javax.xml.bind.JAXBException: "com.a.b.c"にObjectFactory.classまたはjaxb.in​​dexが含まれていません

I gather ObjectFactoryはやり過ぎかもしれません。しかし、この例外を考えると、私はあなたがそれを必要としていると思います..しかし、理由がわかりませんか?

19
Marcus Leon

JAXBContext.newInstance(String)ファクトリメソッドを使用すると、その例外が発生します。このメソッドでは、パッケージ名を引数として渡します。これdoesObjectFactoryが存在する必要があります。そうでない場合、JAXBはどのクラスを処理するかを認識しません。

ObjectFactoryがない場合は、代わりにJAXBContext.newInstance(Class...)を実行する必要があります。代わりに、注釈付きクラスの明示的なリストを渡してコンテキストに追加します。

22
skaffman

ObjectFactoryの代わりに、Javaクラスの新しい行区切りリストを含むテキストファイルであるjaxb.in​​dexファイルを含めることができます。

Jaxb.in​​dexファイルの使用例については、以下を参照してください。

11
bdoughan

Springを使用していて、変更する必要がありました

Jaxb2Marshaller mlr = new Jaxb2Marshaller();
mlr.setContextPaths("","");

Jaxb2Marshaller mlr = new Jaxb2Marshaller();
mlr.setPackagesToScan("","");
1
Anand Rockzz