Camel — попытка упорядочить параметры с помощью JIBX и отправить их на конечную точку CXF-CAMEL

По сути, у меня есть объект XML-d для отправки, благодаря JIBX у меня есть конечная точка WSDL. Я просто хочу довести дело до этой конечной точки. это оказывается чрезвычайно трудно для меня.

Я хотел бы использовать режим POJO, потому что он выглядит намного проще, чем другие режимы, не требует возни с SOAP-заголовками и т. д.

Режим POJO, по-видимому, вызывает JAXB по умолчанию, но я хотел бы использовать JIBX, поскольку проекты, с которыми я взаимодействую, уже аннотированы JIBX и

Я хотел бы либо поменять местами автоматический JAXB-инг POJO с моим JIBX, либо просто позволить мне самому выполнить сортировку (что я могу сделать успешно) и передать свое сообщение xml

from( "A" )
  .marshall().jibx() // works fine, and gives byte[] of marshalled object in In.body
  .process() {
      exchange.getIn().setHeader( CxfConstants.OPERATION_NAME, OPERATION);    
   }
   .to("cxf://SERVICE"
     + "?serviceClass=SERVICE_CLASS"
     + "&wsdlURL=SERVICE?wsdl"
     + "&dataFormat=POJO" );

Затем он пытается вызвать Jaxb для тела сообщения и умирает.

Я пробовал обернуть byte[] как строку, обернуть в список и отправить с помощью dataformat=MESSAGE, но я не могу понять, что я пытаюсь сделать


person Community    schedule 05.02.2013    source источник


Ответы (1)


пользователь1958722,

Я бы порекомендовал взглянуть на некоторые примеры на веб-сайте JiBX и в моем блоге по адресу blog.tourgeek.com

У JiBX есть коннектор данных, включенный в CXF. Это означает, что все, что вам нужно сделать, это указать коннектор данных jibx в вашем файле spring bean.xml, и JiBX автоматически выполнит маршалинг/демаршалинг.

Хотя CXF — отличный инструмент для серверов SOAP, я обнаружил, что его немного сложно использовать для клиентов SOAP. Вы можете сэкономить кучу времени, используя клиентскую библиотеку JiBX. Он очень легкий, поскольку использует пакет javax.xml.ws.soap для упаковки вашего сообщения в контейнер SOAP.

Я бы посоветовал прочитать мой пост о создании клиента SOAP и посмотрите на некоторые из пример кода клиента в нашем репозитории.

В библиотеке схем JiBX есть отличные клиент веб-службы и примеры серверов.

Если вы имеете дело с общедоступным набором сообщений, подумайте о том, чтобы пожертвовать свою привязку библиотеке схем JiBX.

Надеюсь, это поможет!

Дон

person Don Corley    schedule 06.02.2013
comment
Мм, Spring, моя компания действительно стремится избегать использования Spring везде, где это возможно... Это расстраивает. У меня настроено соединение с SOAP, у меня есть XML-сообщение, которое я просто не могу понять. как уговорить CXF его поставить. Посмотрю выложенные вами примеры. спасибо - person ; 08.02.2013