查看您的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!
RoseIndia的东西非常糟糕,我建议为教程找到不同的来源。 – skaffman 2010-12-15 12:58:42