cxf jax-rs によって残りの Web サービスを公開している Web アプリケーションがあります。私のアプリケーションコンテキストファイルには、次のようなものがあります。
...
<bean id="service" class="SomeClass">
<constructor-arg index="0">
<ref bean="bean1" />
</constructor-arg>
<constructor-arg index="1"
value="some value" />
</bean>
<jaxrs:server id="restContainer" address="/">
<jaxrs:serviceBeans>
<ref bean="service" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
</jaxrs:providers>
</jaxrs:server>
...
サービス クラスには、これら 2 つのパラメーターを受け入れてサービスを初期化するコンストラクターもあります。
アプリケーションをデプロイすると、Spring コンテキスト ローダーがサービス Bean を正しく作成し、正しいコンストラクターが呼び出されます。問題は、最初の Rest リクエストがいつサービスされるかです。Cxf Jax-rs は「デフォルト コンストラクター」によって独自のインスタンスを作成しているため、これら 2 つのプロパティが失われます。
コンストラクタ引数の代わりにプロパティ セッターを使用すると、同じことが起こります。私が cxf jax-rs を調査したとき、いくつかのプロパティを持つサービスを持っている例はありませんでした! これには理由がありますか、それとも cxf による何らかの実装上の制約ですか?
何か案は?