我有一个Web应用程序,它通过cxf jax-rs公开其余的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>
...
我的服务类中也有一个构造函数,它接受这两个参数并初始化服务。
当我部署我的应用程序时,spring上下文加载器正在正确创建服务bean,并且正在调用正确的构造函数。问题是第一个Rest请求何时开始服务。 Cxf Jax-rs正在通过“默认构造函数”创建自己的实例,我将丢失这两个属性。
如果我使用属性setter而不是构造函数args,则会发生同样的事情。当我研究cxf jax-rs时,没有一个例子有一个具有一些属性的服务!是否有这样的原因,或者这是cxf的一些实现约束?
有什么想法吗?