1

我在 Fuse 4.2 中部署了一个简单的 CXF RS 捆绑包,在初始安装时可以正常工作。但是,当我更新或重新安装捆绑包时,REST 服务不再可用。

我尝试了各种配置,发现使用 cxf-extension-osgi 是问题......

由此...

<import resource="classpath:META-INF/cxf/osgi/cxf-extension-osgi.xml"/>

对这个...

<import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"/>

另外,我将地址更新为非相对的......以这个配置结束(在捆绑重新启动后工作,等等)

<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" />

<jaxrs:server id="testService" address="http://localhost:9000/">
    <jaxrs:serviceBeans>
        <ref bean="testBean" />
    </jaxrs:serviceBeans>
</jaxrs:server>

知道使用 cxf-extension-osgi 时导致此问题的原因是什么吗?另外,当使用 cxf-extendsion-http-jetty 代替(功能、性能等)时,有什么权衡?

谢谢

4

2 回答 2

1

抱歉,cxf/servicemix 集成似乎出错了。问题是,cxf 尝试在已使用的地址下注册服务(由该服务的旧版本)。

捆绑重新启动/更新后,REST 和 SOAP 服务都无法访问。重新启动整个 servicemix。但是,当业务逻辑在其他 bundle 中,并且带有 SOAP/REST 服务的 bundle 只包含接口时,只有在接口发生变化时才需要重新启动。

我们一直在与这个错误作斗争,但不幸的是没有付出任何努力。

于 2010-12-21T08:27:06.180 回答
1

我刚刚在 Fuse 4.3.0-fuse-03-00 中对此进行了测试,它似乎工作正常。下面的相关问题也必须解决我的问题......

https://issues.apache.org/jira/browse/CXF-2947

于 2010-12-21T23:54:48.650 回答