Affects Version/s: 1.6.2
Fix Version/s: None
Ubuntu 12.04 LTS
Our Tomcat axis2 is installed on server 192.168.0.16 at default port 8080. In our router, we have added a redirection ourservice.com:3480 -> 192.168.0.16:8080 to make the service publicly available.
The announced service port in all wdsl delivered (for several services) wrongly depends on the very first request sent to Axis2 after Tomcat server startup.
1. Calling "http://192.168.0.16:8080/axis2/services/Version?wsdl" as the first call gives:
<wsdl:service name="Version"><wsdl:port name="VersionHttpSoap11Endpoint" binding="ns:VersionSoap11Binding">
All later calls to the WSDL of any service now contain ":8080" as port number, instead of the number used in the request.
So calling "http://ourservice.com:3480/axis2/services/Version?wsdl" now gives
instead of the expected result
It also works the other way around, i.e. if the first coming all is coming from external, all services are advertised at port 3480 even in (internal) calls to port 8080.
A temporary fix is to set a static port in the transportReceiver, however naturally, in this case one of the WSDL (either internal or external) is always wrong.
What puzzles me is that the IP address is used correctly on each request to build the WSDL, while the port number stays cached from the very first call.