2009-08-12 7 views
1

J'ai quelques services Web JAX-WS hébergés sur le même serveur. Ils utilisent les mêmes objets d'entité, mais lorsque les services Web sont consommés par un client, les objets d'entité reflétés sont toujours différents entre les services Web. Comment puis-je forcer tous les clients à identifier les objets d'entité du même type de données sur plusieurs services Web?Utilisation de classes d'entités communes sur différents services Web JAX-WS

dire

classe webservice.Student pour le service Web StudentAdministration et classe webservice.Student pour le service web ClassAdministration

sont les deux objets différents du point de vue du consommateur. Comment puis-je modifier mon service Web pour exposer le webservice.Classe d'étudiant pour faire savoir au consommateur que les deux sont les mêmes types d'entité, même si elles sont exposées à partir de différents services Web?

Répondre

1

Vous devez définir les entités communes dans un schéma XML unique comme décrit ici:

https://jax-ws.dev.java.net/guide/Compiling_multiple_WSDLs_that_share_a_common_schema.html

+0

Dans ce cas, est-il possible de faire quelque chose sur le côté service Web qui peut provoquer des classes générées du consommateur être le même à travers le nombre de services Web? Je pensais que le dernier post de http://forums.java.net/jive/thread.jspa?threadID=28673 est pertinent pour ce que je veux faire, mais je ne comprends pas vraiment comment je vais inclure les 2 fichiers que l'auteur déclare à l'intérieur de la fourmi – pkchukiss

+0

La façon dont cela devrait fonctionner est le WSDL pour chaque service devrait référencer le même schéma. Lorsque vous générez les stubs pour chaque service (à partir du WSDL), des classes identiques seront générées en fonction du schéma commun. Ces classes identiques peuvent ensuite être partagées par chaque consommateur. Cela a-t-il un sens ou ai-je manqué quelque chose? –

+0

Que faire si le fichier WSDL est généré automatiquement par JAX-WS en fonction des classes de noeud final? Nous avons une situation similaire dans laquelle nous avons plusieurs points de terminaison qui partagent des entités communes. wsimport place chaque ensemble de classes (pour chaque point de terminaison) dans un paquet séparé, mais nous aimerions que les classes communes soient dans un paquet 'commun' différent. – GaZ

Questions connexes