2012-12-19 6 views
7

Ho un server HTTP Apache2 questo server è disponibile su reti esterne. Per i miei servizi web ho un Jboss 4 in una rete interna. Ho configurato VirtualHosts su Apache con DMZ, così posso accedere ai servizi da host esterni da http://externalserver/services/SomeService?wsdl, e quando le richieste arrivano con/services/* Sto reindirizzando la richiesta a ProxyPass su http://internalserver/services/SomeService?wsdl.Sapone cambio asse: indirizzo

Questo funziona su intranet, ma quando provo a consumare il mio servizio web da un host esterno, il mio wsdl si riferisce all'host interno. Ho qualcosa di simile:

<service name="SomeServiceService"> 
    <port binding="tns:SomeServiceBinding" name="SomeServicePort"> 
     <soap:address location="http://internalserver/services/SomeService"/> 
    </port> 
</service> 

Ho bisogno di cambiare l'attributo posizione nel mio generato wsdl, come posso farlo?

Grazie in anticipo.

Modificato:

posso cambiare host e la porta ho modificato il jboss-beans.xml, ora ho qualcosa di simile:

<property name="webServiceHost">${jboss.bind.address}</property> 
<property name="modifySOAPAddress">true</property> 
<property name="webServiceSecurePort">8443</property> 
<property name="webServicePort">8080</property> 

Ma questo non cambia il protocollo, mi può chiamare http://myapp/Service?wsdl o https://myapp/Service?wsdl ma in entrambi gli indirizzi è http, ho bisogno di cambiarlo in https.

risposta

1

Secondo this post è possibile impostare soap:address a qualcosa come "https://REPLACE-ME come un lavoro in giro, o applicare CONFIDENTIAL garanzia di trasporto (che può rompere i vostri servizi intranet, a meno che anche distribuirlo in un server HTTPS abilitato o sostituire il soap:address manualmente).