Какую библиотеку SOAP XML-объектов для Java вы бы порекомендовали? - PullRequest
4 голосов
/ 10 апреля 2009

Какую библиотеку сериализации объектов Java SOAP XML вы бы порекомендовали для Обмен Java-объектами с другими платформами / языками (.NET, Delphi)?

Сценарии общения могут выглядеть следующим образом:

  • Java объект записи -> SOAP XML текст -> .NET или Delphi объект чтения
  • .NET или Delphi объект записи -> SOAP XML текст -> Java объект чтения

Я знаю, что есть библиотека сериализации XStream XML и JSON в качестве альтернативных решений, однако, поскольку Delphi и .Net имеют встроенную поддержку сериализованных объектов SOAP XML, это обеспечит «стандартизированный» способ с поддержкой расширенных функций, таких как вложенные. объекты, массивы и т. д.

Edit: Тем временем я обнаружил JAXB - (https://jaxb.dev.java.net/), JAXMe и JiBX - привязка XML к коду Java (http://jibx.sourceforge.net/). Но они не генерировать сериализованный XML SOAP по умолчанию.

Возможным решением будет библиотека веб-службы, которая может работать без HTTP-сервера и предлагает простой файловый интерфейс для содержимого XML SOAP (не полный запрос, а только сериализованный объект). Оси 2 и CXF выглядят очень интересно.

Ответы [ 5 ]

5 голосов
/ 13 апреля 2009

Я предпочитаю JAX-WS (с привязкой данных JAXB 2.1) по сравнению с другими библиотеками, которые я использовал (JAX-RPC, Axis 1 и 2, но не XFire). Привязка данных JAXB 2 использует универсальные шаблоны, которые обеспечивают приятное отображение свойств с maxoccurs> 1. Сам JAX-WS достаточно хорошо документирован и предоставляет достаточно хороший API. В некоторых случаях аннотации методов и параметров могут выйти из-под контроля - ад XML в виде аннотаций. Обычно это не так уж и плохо.

Одним из приятных аспектов стека JAX-WS является проект Metro, который Sun совместно разрабатывает с Microsoft и хорошо взаимодействует с поддержкой веб-служб .NET 3.0, вплоть до практической реализации MTOM.

4 голосов
/ 18 апреля 2009

Я бы порекомендовал CXF . Это очень хороший стек сервисов, включающий привязку данных JAXB и поддержку JAX-WS. Возможно, вы захотите взглянуть на платформу интеграции с открытым исходным кодом, например Mule , которая включает в себя CXF (также поддерживает Axis и XStream), если вам требуется более сложное преобразование и маршрутизация ваших сообщений. Он легкий и может быть встроен или запущен без сервера приложений.

3 голосов
/ 11 апреля 2009

В дополнение к Axis2, которая работает нормально, стоит проверить Sun JAX-WS (версия 2) и Apache CXF (урожденный XFire), это Soap - ваша вещь. CXF может быть самым зрелым из трех, так что это мой фаворит, но все три довольно хороши.

0 голосов
/ 19 апреля 2009

Я думаю, что вы ответили на свой вопрос.

XStream (вывод в формате JSON) - хорошее чистое решение. Если вы используете псевдоним, вы получите чистый выходной формат. После этого не имеет значения, какой стек SOAP вы используете, если он хорош и совместим с Delphi / .NET.

0 голосов
/ 11 апреля 2009

Стандартной библиотекой для этого, вероятно, будет Apache Axis 1 . Я бы посоветовал использовать axis2 вместо оси 1.4, хотя это работает довольно хорошо.

Принимая во внимание, что все расширения SOAP превращают мечту о функциональной совместимости просто в мечту.

...