2013-03-25 79 views
0

我精確地跟蹤了this tutorial的每一步(除了跳過第4步,因爲我現在只想讓它在eclipse中工作)。使用eclipse和axis 2生成第一個Web服務客戶端的問題

我小心地使用每一個軟件(日食helios,軸2 1.5.2等)的確切版本。我在Mac OS X 10.7.5上運行這個,現在在教程中的窗口上運行。

無論如何,一切順利,直到第5步,當我去創建測試客戶端。我能夠獲得直通向導創建客戶端 - 但只有當我將它指向這個URL:

localhost:8080/MyFirstWebService/services/FirstWebSertice?wsdl 

,而不是這個教程

http://localhost:8080/axis2/services/FirstWebService?wsdl 

之後,它不生成兩個名爲FirstWebServiceStub.java和FirstWebServiceCallbackHandler.java的類 - 但是會生成下圖中顯示的幾個類。

這是一個主要的差異?我做錯了什麼?我應該如何從教程中翻譯這段代碼才能使它與生成的類一起工作?

package com.sencide; 

import java.rmi.RemoteException; 
import com.sencide.FirstWebServiceStub.AddTwoNumbers; 
import com.sencide.FirstWebServiceStub.AddTwoNumbersResponse; 

public class TestClient { 

public static void main(String[] args) throws RemoteException { 

    FirstWebServiceStub stub = new FirstWebServiceStub(); 
    AddTwoNumbers atn = new AddTwoNumbers(); 
    atn.setFirstNumber(5); 
    atn.setSecondNumber(7); 
    AddTwoNumbersResponse res = stub.addTwoNumbers(atn); 
    System.out.println(res.get_return()); 

} 
} 

enter image description here

回答

1

URL http://localhost:8080/axis2/services/FirstWebService?wsdl將由本教程步驟4中安裝的服務處理。由於您跳過了該步驟,因此該網址無法使用。

在正常的tomcat行爲下,URL的「/ axis2」部分引用在tomcat中部署的特定Web應用程序(WAR文件)。在這種情況下,從tomcat的角度來看,web應用程序是axis2.war。

URL的「services/FirstWebSertice」部分引用在Axis2環境中運行的特定Axis2服務(AAR文件)。

作爲@ andreas-veithen指出,它看起來像您的項目資源管理器映像中的樣板java類是由Axis而不是Axis2生成的。 Axis和Axis2實際上是兩個不同的Web服務庫;一個不只是另一個的更高版本。看來你不知何故使用錯誤的代碼生成器來生成這些類。

2

FirstWebServiceLocator是由Axis 1.x中生成的類,但在本教程的代碼期望通過Axis2中生成的代碼。

相關問題