2009-04-10 6 views
4

Quelle bibliothèque de sérialisation d'objet Java SOAP Java recommanderiez-vous pour échange d'objet Java avec d'autres plates-formes/langages (.NET, Delphi)?Quelle bibliothèque de sérialisation d'objets SOAP XML pour Java recommanderiez-vous?

scénarios de communication pourraient ressembler à ceci:

  • Java écrivain objet -> SOAP texte XML -> .NET ou un lecteur d'objets Delphi
  • .NET ou écrivain objet Delphi -> Texte XML SOAP -> Java lecteur objet

Je sais qu'il ya la bibliothèque de sérialisation XML XStream et JSON comme solutions alternatives, mais depuis Delphi et .Net ont un support intégré pour les objets sérialisés XML SOAP, cela offrirait une manière « normalisée » avec le soutien pour des fonctionnalités avancées comme objets imbriqués, tableaux et ainsi de suite.

Edit: Pendant ce temps, je trouve JAXB - (https://jaxb.dev.java.net/), JAXMe et JiBX - XML ​​Binding à code Java (http://jibx.sourceforge.net/). Mais ils ne génèrent pas de XML sérialisé SOAP par défaut.

Une solution possible serait une bibliothèque de services Web capable de fonctionner sans serveur HTTP et offrant une interface de fichier simple pour le contenu XML SOAP (pas une requête complète, juste un objet sérialisé). Axe 2 et CXF semble très intéressant.

+0

Avez-vous vu cet article? http://java.dzone.com/announcements/asynchronous-object-exchange –

Répondre

5

Je préfère JAX-WS (avec la liaison de données JAXB 2.1) par rapport aux autres librairies que j'ai utilisées (JAX-RPC, Axe 1 et 2, mais pas XFire). La liaison de données JAXB 2 utilise des génériques, ce qui permet une cartographie agréable des propriétés avec un maxoccurs> 1. JAX-WS lui-même est raisonnablement bien documenté et fournit une API raisonnablement bonne. Dans certains cas, les annotations de méthodes et de paramètres peuvent devenir un peu incontrôlables - XML ​​enfer sous forme d'annotation. Ce n'est généralement pas si mal. L'un des aspects intéressants de la pile JAX-WS est le projet Metro, que Sun a co-développé avec Microsoft et qui fonctionne bien avec le service web .NET 3.0, allant jusqu'à implémenter MTOM de façon pratique.

+0

+1 pour JAX-WS et JAXB. Parfois, vous devez vraiment jouer avec les annotations, mais à la fin, je suis vraiment satisfait du résultat –

0

La bibliothèque standard pour cela serait probablement Apache Axis 1. Je conseillerais d'utiliser axis2 à la place de l'axe 1.4- bien que cela fonctionne plutôt bien. Gardez à l'esprit que toutes les extensions SOAP font de ce rêve d'interopérabilité un rêve ....

3

En plus de Axis2 qui fonctionne bien, JAX-WS de Sun (version 2) et Apache CXF (nee XFire) valent la peine d'être vérifiés, il est votre truc. CXF est peut-être le plus mature des 3, donc c'est mon préféré, mais tous les 3 sont plutôt bons.

+0

+1 pour axe2, -1 pour jax-ws –

4

Je recommanderais CXF. C'est une très bonne pile de services et inclut la liaison de données JAXB et le support JAX-WS. Vous pouvez regarder une plate-forme d'intégration open source comme Mule qui inclut CXF (prend également en charge Axis et XStream) si vous avez besoin d'une transformation et d'un routage plus avancés de vos messages. Il est léger et peut être intégré ou exécuté sans un serveur d'applications.

+0

CXF est mon favori en ce moment, aussi, mais très riche en fonctionnalités – mjn

+0

Plenty facile à utiliser, et vous pouvez simplement vous concentrer sur votre java code et laissez CXF traiter twaddle de service Web. – Martlark

0

Je pense que vous avez répondu à votre propre question.

XStream (sortie en JSON) est une bonne solution propre. Si vous alias types vous obtenez un format de sortie propre. Après cela, peu importe quelle pile SOAP vous utiliserez tant qu'elle est agréable et interopérable avec Delphi/.NET.

+0

Je recommanderais contre cela. XStream est une librairie géniale pour sérialiser des POJO en XML, mais pas si on veut utiliser SOAP (même chose pour JSON comme format bien sûr). – StaxMan

Questions connexes