jaxws и маршрут верблюда в сервисмиксе

Я хотел бы сделать что-то вроде этого:

<jaxws:endpoint id="AbcEsbHTTPEndpoint" 
    implementor="com.abc.esb.ABCWSServiceImpl"
    address="/ABCWSServiceService"
    wsdlLocation="wsdl/ABCWSService.wsdl"
    endpointName="e:ABCWSService"
    serviceName="s:ABCWSServiceService"
    xmlns:e="http://com.abc.esb/abcesb/services/ABCWSService"
    xmlns:s="http://com.abc.esb/abcesb/services/ABCWSService">
</jaxws:endpoint>


<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="cxf:bean://ABCWSServiceService"/>
        <to uri="cxf:bean:decodeClient"/>
    </route>
</camelContext>    

<jaxws:client id="decodeClient" 
    address="http://ESB-DEV1:9081/abcesb/services/Decoder"
    wsdlLocation="http://ESB-DEV1:9081/abcesb/services/Decoder?wsdl" 
    serviceClass="com.abc.esb.ABCServiceInterface" 
    abstract="true" > 
</jaxws:client>  

Я не понимаю, как настроить маршрут верблюда от <jaxws:endpoint> до <jaxws:client>. Какой синтаксис использовать?? Я знаю, что вы можете использовать <cxf:cxfEndpoint>, но я не хочу использовать его, если в этом нет необходимости.

Я знаю, как это сделать с JBI, но я хочу развернуть это в сервисмиксе, используя пакет OSGI, а не JBI.


person guido    schedule 28.02.2011    source источник


Ответы (2)


jaxws:client в вашей конфигурации является конечной точкой, как и jaxws:endpoint, и может быть подключен с помощью bean компонент:

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="bean:AbcEsbHTTPEndpoint"/>
        <to uri="bean:decodeClient"/>
    </route>
</camelContext>

Обычно необходимо сделать что-то промежуточное, скажем, каким-то образом адаптировать сообщение, но, по крайней мере, описанное выше позволит достичь маршрутизации.

person chrisjleu    schedule 29.10.2013

См. некоторые примеры cxf из примеров в дистрибутиве верблюда. Они показывают, как настроить cxf, а не как jbi.

person Claus Ibsen    schedule 02.03.2011
comment
Спасибо за ответ. Да, я просмотрел их совсем немного. Я думаю, что пример (camel-example-cxf-proxy) является точным вариантом использования. На основе этого примера я могу использовать верблюжий маршрут из настроенной конечной точки cxf:cxfEndpoint. Мне было любопытно, могу ли я использовать верблюжий маршрут от конечной точки jaxws: endpoint. Я не знал синтаксиса верблюжьего маршрута для ссылки на jaxws: endpoint. Спасибо за вашу помощь! - person guido; 03.03.2011
comment
Гвидо, я также пытаюсь установить camel-example-cxf-proxy в serviceMix 4.3.0. Установка прошла нормально (install -s wrap:file:/c:/...jar). Но похоже пример не работает. Я не могу получить доступ к WSDL при использовании SOAPUI для тестирования. Не могли бы вы рассказать мне, как заставить его работать в ServiceMix? - person David; 07.03.2012
comment
Клаус... Я знаю, что ты гений, потому что ты изобрел Верблюда. Но можем ли мы увидеть реальный код? Я искал фактический пример маршрутизации в/из конечной точки jax-ws, но не могу его найти. Вы, будучи основным создателем Camel, были бы ЛУЧШИМ человеком, чтобы привести пример (или даже ссылку, что-то?). Я удалю свое отрицательное мнение об этом ответе, если вы опубликуете пример. Ваше здоровье. - person Jack; 19.07.2012