WSDL port address is not correctly generated for machines having multiple 
network interfaces
--------------------------------------------------------------------------------------------

                 Key: AXIS2-3784
                 URL: https://issues.apache.org/jira/browse/AXIS2-3784
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.3, 1.4
         Environment: Windows XP Pro, Java 5, Tomcat 6, Axis2 1.4 (release)
            Reporter: Dietmar Gaertner


WSDL portAddress is filled with one of the machine's IP addresses. The code to 
get the IP address seems to be 
org.apache.axis2.transport.http.sever.HTTPUtils.getIpAddress() which always 
takes the first available network interface's ip address.

For example http://localhost:8080/axis2/services/Version?wsdl returns a WSDL 
containing
...
<wsdl:service name="Version">
        <wsdl:port name="VersionHttpSoap11Endpoint" 
binding="ns:VersionSoap11Binding">
<soap:address 
location="http://10.20.125.14:8080/axis2/services/Version.VersionHttpSoap11Endpoint"/>
</wsdl:port>
        <wsdl:port name="VersionHttpSoap12Endpoint" 
binding="ns:VersionSoap12Binding">
<soap12:address 
location="http://10.20.125.14:8080/axis2/services/Version.VersionHttpSoap12Endpoint"/>
</wsdl:port>
        <wsdl:port name="VersionHttpEndpoint" binding="ns:VersionHttpBinding">
<http:address 
location="http://10.20.125.14:8080/axis2/services/Version.VersionHttpEndpoint"/>
</wsdl:port>
</wsdl:service>
...

This may not work on machines which have vmvare installed, or machines having 
multiple network interfaces or just a laptop which has wireless and wired lan.

I think the correct way is to use the hostName instead of the ipAddress in the 
WSDL port address, for example
...
<wsdl:service name="Version">
        <wsdl:port name="VersionHttpSoap11Endpoint" 
binding="ns:VersionSoap11Binding">
<soap:address 
location="http://myhostname.company.com:8080/axis2/services/Version.VersionHttpSoap11Endpoint"/>
</wsdl:port>
        <wsdl:port name="VersionHttpSoap12Endpoint" 
binding="ns:VersionSoap12Binding">
<soap12:address 
location="http://myhostname.company.com:8080/axis2/services/Version.VersionHttpSoap12Endpoint"/>
</wsdl:port>
        <wsdl:port name="VersionHttpEndpoint" binding="ns:VersionHttpBinding">
<http:address 
location="http://myhostname.company.com:8080/axis2/services/Version.VersionHttpEndpoint"/>
</wsdl:port>
</wsdl:service>
...

Regards, Dietmar




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to