如何使用wsdl2java在Axis2中生成非安全存根

时间:2010-12-15 12:51:42

标签: axis2

我正在尝试学习Axis2 Web Services,并正在研究RoseIndia网站(link text)上的教程。在客户端的示例中,它使用wsdl2java生成存根,并生成使用http://localhost:8080的存根,但是,当我这样做时,它会创建存根以使用安全链接https://localhost:8443。我没有在我的本地开发应用服务器(Tomcat)上安装SSL。

我检查了wsdl2java文档,找不到任何对安全设置的引用。如何使这些存根使用基本的http://localhost:8080引用

1 个答案:

答案 0 :(得分:0)

查看您的WSDL文件。在Axis2 1.5中,wsdl2java工具将使用此SOAP1.2端口为您的存根生成目标端点:

<wsdl:port name="HelloWorldServiceHttpSoap12Endpoint" binding="ns:HelloWorldServiceSoap12Binding">
  <soap12:address location="http://localhost:8082/axis2/services/HelloWorldService.HelloWorldServiceHttpSoap12Endpoint/" />
</wsdl:port>

如果您需要使用其他端口,则可以使用-pn的{​​{1}}选项。

在本地下载您的WSDL并验证端口部分是否正确(无https)。进一步使用wsdl2java生成源,例如:在我的机器上:

wsdl2java

现在检查生成的存根,如果你的WSDL看起来像我的那样你应该看到这样的东西:

lucho@lucholinuxpc:~/axis2-1.5.1/bin> ./wsdl2java.sh -uri /home/lucho/sayhello.wsdl
 Using AXIS2_HOME:   /home/lucho/axis2-1.5.1
 Using JAVA_HOME:       /opt/jdk1.6.0_18
 Using JAVA_OPTS:    -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
Retrieving document at '/home/lucho/sayhello.wsdl'.

接下来,在您的测试代码中,您也可以使用构建函数作为获取目标端点的存根。实际上我更喜欢这种方法,因为WS客户端对目标网络的变化更加灵活。对于你的问题应该是这样的:

/**
 * Default Constructor
 */
public HelloWorldServiceStub() throws org.apache.axis2.AxisFault {
        this("http://localhost:8082/axis2/services/HelloWorldService.HelloWorldServiceHttpSoap12Endpoint/" );
}

最后但并非最不重要的是,我建议您使用本书快速入门教程SOAP Attachments using apache axis2

Cheerz!