查看您的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