Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: CommunityОтветов: 1

По сути, у меня есть объект 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, но я не могу понять, что я пытаюсь сделать

cxfapache-cameljibx

Ответы

Ответ 1 · Don Corley

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

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

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

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

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

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

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

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

Дон

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы