Comment puis-je changer le générés automatiquement soap:address à partir d'un JAX-WS web service WSDL déployé avec le Printemps
J'ai un webservice mise en œuvre générés à l'aide de wsimport à partir d'un WSDL. Ce service est déployé dans un serveur Tomcat, au Printemps de webapp. Le printemps du fichier de configuration (uniquement le webservice partie), c'est comme cela
<wss:binding url="/fooService">
<wss:service>
<ws:service bean="#fooService">
</wss:service>
</wss:binding>
Quand je le déploiement de cette webapp dans tomcat, je peux obtenir le WSDL si je vais à
http://localhost:8080/foo/fooService?wsdl
et le wsdl soap:adresse de la propriété, c'est comme cela:
<service name="FooService">
<port name="FooService" binding="tns:FooServiceBinding">
<soap:address location="http://localhost:8080/foo/fooService"/>
</port>
</service>
Et pour l'instant, tout est ok.
Le problème est que dans la production, nous avons un serveur web Apache et ce serveur redirige la demande pour Tomcat. Il travaille trop, mais quand nous arrivons à l'WSDL, soap:address est toujours localhost:8080 et nous avons besoin de cela pour être le public de l'url du webservice.
Des idées?
Merci beaucoup.
doh! ok, vous êtes le référencement du fichier wsdl ici. toutes mes excuses, je cherche comment remplacer l'adresse de point de terminaison dans la configuration.
OriginalL'auteur drublik | 2012-11-27
Vous devez vous connecter pour publier un commentaire.
Bien, j'ai trouvé une solution:
Il semble que JAX-WS génère cette propriété automatiquement. J'ai constaté que d'autres webservice cadres des mises en œuvre, permettent à l'utilisateur de le modifier en le coder en dur l'url dans une propriété, mais il semble que JAX-WS ne marche pas. Quelqu'un sait si il y a d'une certaine façon?
De toute façon, j'ai trouvé une solution: à l'Aide de proxyName et proxyPort propriétés dans tomcat configuration de Connecteur, vous pouvez dire Tomcat qui est derrière un proxy (dans notre cas, le serveur Apache) et que le "vrai" port pour les clients est de 80.
Fait ce changement, l'générée automatiquement soap:address contient la valeur correcte.
Références:
notre serveur se tenait derrière un loadbalancer et j'ai eu aussi des problèmes de changement de http à https. Après tout je l'ai résolu en ajoutant les trois valeurs
scheme="https" proxyName="host.com" proxyPort="443"
à mon server.xml de Tomcat.Hey @Smalcat Avez-vous trouvé comment résoudre sur WildFly. Face à problème similaire ici. Merci de partager si vous l'avez fait. Merci!
OriginalL'auteur drublik