2010-12-15 57 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!