Question

La mise en œuvre JAX-WS groupée avec JDK6 peut être utilisée pour fournir un serveur de services Web sans aucune bibliothèque supplémentaire.JVM commencera par un serveur WS sur un port spécifié.

http://java.sun.com/developer/technicalarticles/j2se/jax_ws_2/

http://java.sun.com/developer/technicalarticles/j2se/jax_ws_2_pt2/

La question que j'ai est de savoir comment cela diffère-t-il du métro du projet?Si l'objectif final est d'héberger des services Web à l'intérieur de Tomcat, puis-je toujours utiliser des fonctionnalités groupées, puis rediriger simplement sur ce serveur WS groupé ou est-il préférable de déployer le servlet Metro?

Était-ce utile?

La solution

Autant que je connaisse Jax-WS est uniquement un modèle qui doit être mis en œuvre par la JDK6 ou la mise en œuvre du métro.

Metro est simplement l'implémentation standard expédiée avec le serveur d'applications Glassfish. voir ici .

Par conséquent, il ne devrait y avoir aucune différence.

Autres conseils

Eh bien, La première chose que vous devez savoir sur Metro, c'est qu'il s'agit d'un projet parapluie pour divers projets liés à WS à VIZ. JAX-WS, JAXB, WSIT, JAX-WS-COMMONS, etc.

Chacun de ces composants comporte deux parties, API (spécifications) et la partie de mise en œuvre appelée mise en œuvre de référence (RI). Les spécifications sont définies dans «Javax.xml.ws», 'Javax.xml.Bind', etc. et le RI entrez dans les packages 'com.sun.xxx'.

Maintenant quelque part autour de JDK 6, Mise à jour 4, Sun / Oracle a commencé à regrouper ces API + RIS dans le JDK IT Soi et continua à les mettre à jour avec des mises à jour de la JDK.

À partir du dernier JDK 6 Update31, le JDK contient les vérifications suivantes de JAXWS et JAXB API, et RI

JDK6 U31 - JAXB API @ 2.1 & RI @ 2.1.10, JAXWS API @ 2.1 et RI @ 2.1.6

maintenant si vous allez au http://jaxb.java.net et http://jax-ws.java.net pages et consultez la dernière version sous 2.1.x, vous verrez que Jaxb RI est à 2.1.13 et Jaxws Ri est 2.1 .7, c'est-à-dire que les implémentations de RI des meuches 2.1 fournies avec la dernière mise à jour JDK 6 sont quelques versions derrière celles libérées sous le métro. Donc, pour utiliser les derniers bocaux 2.1, copiez simplement les pots API + RI à votre classe de classe, comme décrit ici ici http://jax-ws.java.net/2.1.7/docs/releasenotes.html#Running_on_top_of_jdk_6 .

Pour faire plus de choses déroutantes, Metro Le projet de parapluie a ses propres numéros de version, qui sont dès aujourd'hui, 1,5, 2.0, 2.0.1, 2.1, 2.1.1, 2.2

Metro 1.5 a été la dernière version qui regroupa les SPES 2.1 et les dernières RIS pour que les spécifications, c'est-à-dire Metro 1.5 contenant Jaxws et Jaxb APIS @ 2.1 et JAXWS RI @ 2.1.7 et JAXB RI @ 2.1.13.

METRO 2.0 à partir de 2,0, Bundles JAXB et JAXWS API V2.2 et la dernière RI à partir des données de publication. par exemple. La dernière version de Metro version 2.2 Jaxb RI 2.2.5 et JAXWS RI 2.2.6.

Mais il y a une prise, JDK 6 Bundles V2.1 pour Jaxws et Jaxb (API + RI), et si vous utilisez simplement JAXWS, JAXB V2.2 Bocons dans votre classe de classe ne fonctionnera pas. Vous devrez utiliser le mécanisme de jar endossé, comme décrit ici http:// Jax- ws.java.net/2.2.3/docs/releasenotes.html#Running_on_top_of_jdk_6 .

Donc, pour toute version de métro 2.0 et plus, vous devrez copier les fichiers JAX-WS-WS-API.JAR et JAXB-API.JAR sous $ Java_Home / JRE / LIB / endossé ou utilisez le -DJAVA.END. Propriété du système .Dirs.

Et d'autres amusants, Metro n'est tout simplement pas un projet parapluie contenant les projets JAX-WS, JAXB (parmi d'autres), mais il fait également un pot uber de ces projets.

SO E.G.'S WESTERSERSVICES-API.JAR contient JAXWS-API.JAR, JAXB-API.JAR (RI) + API d'autres projets d'enfants comme WSIT, JAX-WS-COMMONS, etc.

et WebServices-rt.jar contient Jaxws-Rt.jar, Jaxb-Rt.jar, + RT Jars d'autres projets d'enfants tels que WSIT, JAX-WS-Commons, etc.

pour résumer -

Si vous souhaitez développer votre WS contre les spécifications JAXWS / JAXB V2.1, utilisez simplement le JDK 6 (n'importe quelle mise à jour au-delà de l'U04). Si vous souhaitez être absolument certain d'utiliser les dernières versions APIS + RIS de 2.1 spécifications, utilisez simplement les bocaux de version 2.1.x de Jaxws et JAXB. IE Utilisez JAX-WS 2.1.7 et JAXB 2.1.13, dans votre catégorie, [ou vous pouvez utiliser le métro 1.5's WebServices-API.JAR et WebServices-RT.JAR, car ils regroupent le JAXWS / JAXB / WSIT /. .]

Si vous souhaitez développer votre WS contre les dernières spécifications JAXWS / JAXB V2.2, vous devrez alors utiliser JAX-WS V2.2.2.6 et JAXB Ver 2.2.5 pots [ou utilisez alternativement lesservices de Metro 2.2 -api.jar et Webservices-rt.jar comme ils regroupent la jaxws / jaxb / wsit ..] Mais vous devrez utiliser le mécanisme de bocal approuvé comme décrit ci-dessus, afin de remplacer le JDK inclus JAXWS / JAXB V2.1 pots.

Ma recommandation - Si v2.1 est ok avec vous utilisez les bocaux de métro 1.5 (WebServices-API, WebServices-RT). Si vous avez besoin de V2.2, utilisez des pots de métro 2.2 (WebServices-API, WebServices-RT) et assurez-vous de mettre desservices-API.JAR dans le DIR approuvé.

Vous aurez besoin de bocaux de métro (Webservices- [API, RT] .jar) Si vous allez utiliser des trucs comme FASTINFOSETS, MTOM, etc., en tant que JARS JDK groupés ou à ce sujet Just The Jaxws-Ri.jar et Jaxb-ri.jar ne vous donnera pas ces fonctionnalités.

J'espère que ce courrier plutôt long a été utile pour éliminer certaines choses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top