我正在尝试学习Axis2 Web Services,并正在研究RoseIndia网站(link text)上的教程。在客户端的示例中,它使用wsdl2java生成存根,并生成使用http://localhost:8080的存根,但是,当我这样做时,它会创建存根以使用安全链接https://localhost:8443。我没有在我的本地开发应用服务器(Tomcat)上安装SSL。
我检查了wsdl2java文档,找不到任何对安全设置的引用。如何使这些存根使用基本的http://localhost:8080引用
答案 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!