1

Spring DM (OSGi) で Spring Rest を使用しています。マーシャリング/アンマーシャリングに JAXB を使用する必要があります。Model オブジェクトが同じプロジェクトの場合、Spring で JAXB を簡単に使用できます。ただし、OSGi (Spring DM) で同じことをしようとすると、問題が発生します。モデル オブジェクトを別のバンドルに保持しているためjaxb2Marshaller、注釈付きのモデルを見つけることができません@XmlRootElement

例外は次のとおりです。

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: ServletContext リソース [/WEB-INF/building-servlet.xml] からの XML ドキュメントの 51 行目が無効です。ネストされた例外は org.xml.sax.SAXParseException です。行番号: 51; 列番号: 52; cvc-complex-type.2.4.c: 一致するワイルドカードは厳密ですが、要素 'tx:annotation-driven' の宣言が見つかりません

これを達成するための回避策を教えてください。

4

2 に答える 2

1

これは、jaxb を含む jre により、システム バンドルによって jaxb も提供されるという事実に関連している可能性があります。その特別なバージョンをインポートし、このバージョンがインストールされていることを確認してください。これはおそらくこれであなたを助けるでしょう。また、システム バンドルによってエクスポートされたバージョンが正しい方法で構成されていることを確認する必要がある場合もあります。このためには、etc フォルダー内の jre.properties を変更し、正しいバージョンを jaxb パッケージに設定する必要があります。

于 2012-12-18T21:11:27.997 に答える
0

たまたま私のこの投稿を再訪しました。この問題はずっと前に解決されました。マーシャリングとアンマーシャリングを行う Spring の「Out Of The Box」JAXB Marshaller (org.springframework.oxm.jaxb.Jaxb2Marshaller) を使用しました。返信が遅くなり申し訳ありません。ご清聴ありがとうございました。

于 2013-03-30T06:29:01.563 に答える