• About
Triona Weblog

Software Development and much more

JAX-WS Webservice Endpoint URL zur Laufzeit ändern

19.09.2011 by Anton Autor

Lässt man sich über das kleine JAX-WS Tool “wsimport” automatischen Java-Clientcode für einen WebService generieren, sind sowohl die WSDL-URL, als auch die Endpoint-URL im Clientcode fest hinterlegt. Das Erzeugen des Clients kann dann über einen parameterlosen Konstruktor erfolgen, was im ersten Moment verlockend einfach klingt.

Ändert sich nun die WSDL- oder gar die Endpoint-URL, so möchte man natürlich ungern den generierten Code per Hand ändern oder den Import ständig wiederholen. Noch spannender ist die Frage, wie man beide Parameter zur Laufzeit ändern kann. JAX-WS bietet glücklicherweise für diese Fälle entsprechende Lösungen.

WSDL-URL ändern
Die WSDL-URL ist der erste Anlaufpunkt des Clients. Hier holt er sich Informationen über die vom Service bereitgestellten Methoden und die Information, mit welcher Endpoint-URL der eigentliche Service anzusprechen ist.

Beim Erzeugen des Client über den parameterlosen Konstruktor wird die beim wsimport genutzte URL als Standard genommen. Es gibt aber auch einen Konstruktor, der die WSDL-URL und den Servicenamen übernimmt.

WebService webService = new WebService(wsdlLocation, serviceName);

Endpoint-URL ändern
In der WSDL-Datei wird die Endpoint-URL des Webservice propagiert. Also die URL, an die man die Methodenaufrufe dann schlussendlich richtet. Soll auch diese von außen überschrieben werden, lässt sich das Service-Binding nachträglich ändern.

((BindingProvider) webServicePort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, newEndPointUrlAsString);

Posted in: Development, Java, JEE Tagged: BindingProvider, Endpoint URL, JAX-WS, WebService, WSDL, wsimport
October 2023
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« Nov    

Tags

API Architecture CDI Collections Comparable Comparator Database EA Eclipse EJB Enterprise Architect Excel Hessian HTML Iteration Java Java 8 JavaEE Java EE Java Enterprise Development javascript Javascript Canvas HTML5 JEE JEE 6 JPA jQuery JSF linux Makro Map MariaDB Maven Oracle Plugins Relation relationship Richfaces Service Service Facade Set SOA Subversion Tutorial VBA XML

Recent Posts

  • Domain Driven Design und Event Storming
  • NESTJS BEYOND „HELLO WORLD“
  • Jakarta EE 9 – An upheaval with difficulties
  • Jakarta EE 9 – Ein Umbruch mit Schwierigkeiten
  • Erste Schritte mit Hibernate Spatial

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Copyright © 2023 Triona Weblog.

Impressum | Datenschutzerklärung