Wie kann ich @WebService in einem EJB3 SLSB auf meinen Proxyserver legen?

gorefest

Erfahrenes Mitglied
Hi

ich habe ein EJB3 SLSB vom Typ

Java:
@Stateless
@Clustered
@javax.jws.WebService(serviceName="Dashboard",portName="Dashboard")
public class DashboardBean implements DashboardBeanLocal {

...

}

Vor dem JBoss selbst läuft ein Apache + mod_proxy. Die WSDL Datei, die zurückkommt, ist aber gegen die JBoss Bindunsadresse konfiguriert. Wie kann ich das am elegantesten lösen, dass das WSDL nur noch gegen meine apache-adresse geht?

Danke :)
 
Hallo,

eine Möglichkeit wäre es in deinem Apache / Proxy Server entsprechende URL-Rewrite Rules zu definieren.

schau mal hier:
http://www.icanmakeit.de/2008/05/27/jax-ws-and-soapaddress/
http://community.jboss.org/wiki/JBossWS-JAX-WSTools
https://jira.jboss.org/jira/browse/JBWS-2216
http://forums.java.net/jive/thread.jspa?messageID=369639
https://metro.dev.java.net/guide/HTTP_address_in_soap_address_and_import_locations.html

Sieht ganz so aus als gab es zumindest mal für JBossWS support für das dynamische konfigurieren der soap:adress im generierten WSDL. Würde an deiner Stelle mit diesen Informationen dort mal ein wenig weiter graben.

Eine weitere Möglichkeit wäre einen Valve / Servlet-Filter / Interceptor um den Aufruf von http://..../xxxx?wsdl abzufangen und dann im WSDL den soap:action String auszutauschen... das wär ne schnelle Lösung aber ziemlich übel gehacked.

Gruß Tom
 
Hi, Danke für Deine Antwort!

Ich habe nun bei meinen Clustermembers einfach die WSDL-Verdrahtung innerhalb der Serverkonfiguration auf den richtigen Server/Port umgebogen. Das ist aus meiner Sicht legitim, da die Produktionsserver alle aus einem Server-Template sind.

Ich habe in der Datei

./deployers/jbossws.deployer/META-INF/standard-jaxws-endpoint-config.xml

einfach die entsprechenden Verweise auf die Bindungsadresse hin zur Proxy-URL verbogen.

Nun gehts ;-)

Grüße
gore
 
Zurück