Quand je l'ai jamais besoin d'utiliser @WebServiceRef?
Du côté client, si je veux accéder à un service web, je voudrais simplement générer un proxy pour l'aide wsimport
. C'est mon service web de référence.
Où l'annotation @WebServiceRef entrent en jeu? Est-il destiné à être utilisé sur le côté serveur uniquement, pour obtenir injecté des références à des services web hébergés dans le même environnement?
- Dans java SE de clients, il n'est pas nécessaire, car elle semble:
//@WebServiceRef(wsdlLocation="http://localhost:8080/JaxWsExample/NewWebServiceService?wsdl") private static NewWebServiceService service = new NewWebServiceService();
et il fonctionne - Cependant dans le servlet clients, il est mandaory (et pas besoin d'instancier le service)
Vous devez vous connecter pour publier un commentaire.
Pas nécessairement, mais c'est vraiment quelque chose qui dépend de l'implémentation du serveur. par exemple, pour accéder À un service distant, il nécessite d'avoir accès à généré client et, éventuellement, à l'documents WSDL et systèmes de fichiers (par convention
devrait être dans
WEB-INF/wsdl
), de sorte queLa
HelloMessengerService
classe est la classe de stub et a la@WebServiceClient
annotation qui a unwsdlLocation
attribut (points d'locale o à distance document WSDL).Mais vous pouvez avoir quelque chose comme ça
ou
Si vous utilisez un gestionnaire de la chaîne de modifier les entrants et les sortants des messages SOAP:
L'utilisation de la
@WebServiceRef
annotation doit être appliqué à JAX-WS-clients gérés, comme une Servlet, EJB, ou un autre service Web.Juste pour ajouter à Paul Vargas réponse, le
@WebServiceRef
annotation est un outil complet de l'évolution de la plate-forme Java EE, à une filiale de l'environnement contrôlé. Pensez-y de cette façon:Presque tous les composants à l'intérieur de la Java EE de la pile est injectable par certains moyens, Ejb, JSF géré les haricots, les CDI, les haricots, les
@Resources
etc. Pourquoi ne pas être en mesure d'injecter un webservice de référence? Avec la capacité d'injecter un service de référence à l'aide de cette annotation, les éléments suivants sont prêts injection objectifs: