2010-12-15 52 views
0

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

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

+0

RoseIndia的东西非常糟糕,我建议为教程找到不同的来源。 – skaffman 2010-12-15 12:58:42

回答

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> 

如果需要使用其他端口您可以使用wsdl2java-pn选项。

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

[email protected]:~/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'. 

请立即查看生成的存根,你应该看到像这样的情况下,您的WSDL看起来像我:

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

接下来,在你的测试代码,你可以选择使用一个构造函数对于需要目标端点的存根。其实我更喜欢这种方法,因为WS客户端在目标网络中更改更灵活。对于你的问题应该是这样的:

public HelloWorldServiceStub(java.lang.String targetEndpoint) 

最后但并非最不重要的,我建议你这本书的快速启动教程SOAP Attachments using apache axis2

Cheerz!