JAXB クラスの登録を含む、メイン構成に XML を使用する Spring MVC プロジェクトがあります。現在、これをマルチモジュール アプリにしています。オプションの JAR ファイルを作成する別のプロジェクトがあります。JAR ファイルは @Controller や @Service クラスなどをメインの MVC プロジェクトに追加しますが、メインのプロジェクトはその JAR に依存しないため、そのままにしておきたいので、アプリケーションをカスタマイズする必要はありません。オプションの JAR のサポートを追加するためのメイン プロジェクトのコンテキスト xml。そのJARをクラスパスに追加したいだけです。
そのオプションの JAR では、@Configuration アノテーションを持つクラスを使用してアプリケーション コンテキストで新しい Bean を作成することに成功していますが、既存の Bean を拡張して、新しい JAXB アノテーション付きクラスと ObjectFactory クラスを含むパッケージなどを追加する必要があります。 .
これを行う方法がわかりません...
次のようにマーシャラーパッケージをワイルドカード化しようとしました:
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="packagesToScan" value="com.app.xml.**"/>
</bean>
しかし、私が得たので、それは機能していないようです:
javax.servlet.ServletException: Unable to locate object to be marshalled in model
私が取ることができる別のアプローチはありますか?理想的には、 @Configuration クラスに、既存の Jaxb2Marshaller Bean に新しいクラスを追加するだけのメソッドが必要です...
またはさらに良いことに、Spring が起動時に JAXB アノテーションを持つすべてのクラスを検出する方法を見つけます...
Spring OXM経由でSpring 3.2.1とJAXB2を使用しています