商用ソフトウェア製品にドロップされるjarを生成しています。その jar は商用ソフトウェアの API に準拠し、XSD から生成された一連の POJO を含む 2 つ目の jar に依存します。ただし、ドロップしたときに JAXBContext をインスタンス化しようとすると失敗します。
私は得る:
"1 counts of IllegalAnnotationExceptions"
javax.xml.bind.JAXBElement does not have a no-arg default constructor.
this problem is related to the following location:
at javax.xml.bind.JAXBElement
at mypackage.MyClass
...
JAXBContext.newInstance("mypackage");
...
私のXSD(簡潔にするために要約)は次のようになります。
<xsd:schema ... >
<xsd:element name="MyClass" type="myType" />
<xsd:complexType name="myType">
...
</xsd:complextType>
</xsd:schema>
問題はおそらく「xsd:element」レベルのクラスが存在しないことだと思いましたが、MyClass を作成するように XJC を設定し、MyClass に引数なしの public コンストラクターがあることを確認しても問題は解決しません。
だから、私は他のいくつかのSOの質問を見てきました(実際、インターネット全体で)。誰もこの問題を解決するのに十分な理解を私に与えてくれませんでした。誰でも洞察を得ることができますか?または、これを分解するために実施する代替テストを教えてください。