I've a Apache2 HTTP Server this server is avaliable to external networks. For my webservices I've a Jboss 4 in a internal network. I configured VirtualHosts on Apache with DMZ, so I can access the services from external hosts by http://externalserver/services/SomeService?wsdl
, and when requests arraive with /services/* I'm redirect the request to http://internalserver/services/SomeService?wsdl
by ProxyPass.
This working on intranet, but when I try consume my webservice from a external host, my wsdl refers to internal host. I've something like this:
<service name="SomeServiceService">
<port binding="tns:SomeServiceBinding" name="SomeServicePort">
<soap:address location="http://internalserver/services/SomeService"/>
</port>
</service>
I need to change the location attribute in my generated wsdl, How can I do it?
Thanks in advance.
EDITED:
I can change host and port I edited the jboss-beans.xml, Now I've something like this:
<property name="webServiceHost">${jboss.bind.address}</property>
<property name="modifySOAPAddress">true</property>
<property name="webServiceSecurePort">8443</property>
<property name="webServicePort">8080</property>
But this don't change the protocol, I can call http://myapp/Service?wsdl
or https://myapp/Service?wsdl
but in both the addres is http, I need change it to https.
According to this post you can set soap:address
to something like "https://REPLACE-ME
as a work around, or enforce CONFIDENTIAL
transport Guarantee (which may break your intranet services, unless you also deploy it in a https enabled server or replace the soap:address
manually).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With