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

Fuse 4.3.0-fuse-03-00 でこれをテストしたところ、問題なく動作するようです。以下の関連する問題は、私の問題にも対処している必要があります...

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

于 2010-12-21T23:54:48.650 に答える
1

申し訳ありませんが、cxf/servicemix 統合のエラーのようです。問題は、cxf が (このサービスの古いバージョンで) 既に使用されているアドレスでサービスを登録しようとすることです。

バンドルの再起動/更新後、REST サービスと SOAP サービスの両方にアクセスできなくなります。servicemix 全体の再起動。ただし、ビジネス ロジックが別のバンドルにあり、SOAP/REST サービスを含むバンドルにインターフェイスのみが含まれている場合は、インターフェイスが変更された場合にのみ再起動が必要です。

私たちはこのエラーと長い間戦っていましたが、残念ながら努力がありませんでした。

于 2010-12-21T08:27:06.180 に答える