3

我有一个 web 应用程序,它通过 cxf jax-rs 公开了一个 rest 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 正在通过“默认构造函数”创建自己的实例,我将失去这两个属性。

如果我使用属性设置器而不是构造函数参数,也会发生同样的事情。当我研究 cxf jax-rs 时,没有一个示例具有具有某些属性的服务!这是有原因的还是cxf的一些实施限制?

有任何想法吗?

4

0 回答 0