我在weblogic上部署了一个webservice,在内网可以正常测试,但是通过外网防火墙转发访问出错,请高手帮忙?
详细信息:
该机器内网IP为192.168.2.2,外网访问该机器的时候是访问到防火墙 83.83.83.83,访防火墙做了一个NAT转发到内网192.168.2.2.在外网访问http://83.83.83.83/webservices/someService?wsdl可以正确显示WSDL文档,但是使用IE去测试的时候报错:IE地址:
http://83.83.83.83:7001/webservices/someService?A=123&B=ok&securityToken=&operation.invoke=getSome错误信息:
weblogic.webservice.tools.wsdlp.WSDLParseException: Failed to retrieve WSDL from http://83.83.83.83:7001/webservice/someService?WSDL. Please check the URL and make sure that it is a valid XML file [java.net.NoRouteToHostException: Operation timed out] at wsdl中的namespace定义为localhost:7001:我将namespace定义为83.83.83.83也不行。希望高手提供些建议,谢谢。

解决方案 »

  1.   

    在外网访问:http://83.83.83.83/webservices/someService 能成功吗?如果成功的话,那说明访问没问题,可能是其他的问题。再者,外网能ping通内网提供服务的这台机器吗?这些是最起码的检查!
      

  2.   

    当然是能够ping通的,我已经写了:在外网访问http://83.83.83.83/webservices/someService?wsdl可以正确显示WSDL文档。
      

  3.   

    结帖,自己解决了。1、部署的服务器的webservice.xml文档中的targetNamespace需要写成外网IP地址;
    2、使用weblogic提供的IE页面去测试会将targetNamespace错误的改成内网IP地址,导致调用出错;
    3、使用altova XML工具去生成SOAP请求,测试成功。