Перезапуск OSGi с помощью cxf-extension-osgi - PullRequest
1 голос
/ 18 декабря 2010

У меня есть простой комплект CXF RS, развернутый в Fuse 4.2, который отлично работает при первоначальной установке. Но когда я обновляю или переустанавливаю пакет, служба 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-extensionsion-http-jetty (функционал, производительность и т. Д.)?

спасибо

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Я только что проверил это в Fuse 4.3.0-fuse-03-00, и кажется, что он работает нормально. Соответствующая проблема, приведенная ниже, должна была решить и мою проблему ...

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

1 голос
/ 21 декабря 2010

Извините, похоже, ошибка в интеграции cxf / servicemix. Проблема заключается в том, что cxf пытается зарегистрировать службу по адресу, который уже используется (в более старой версии этой службы).

Службы REST и SOAP недоступны после перезапуска / обновления пакета. Перезапуск всего сервисного микса. Однако, когда бизнес-логика находится в другом пакете, а пакет со службой SOAP / REST содержит только интерфейс, перезапуск необходим только после изменения интерфейса.

Мы боролись с этой ошибкой долго, но, к сожалению, без усилий.

...