使用eclipse和axis 2生成第一个Web服务客户端的问题
我精确地跟踪了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());
}
}
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服务库;一个不只是另一个的更高版本。看来你不知何故使用错误的代码生成器来生成这些类。
FirstWebServiceLocator
是由Axis 1.x中生成的类,但在本教程的代码期望通过Axis2中生成的代码。