使用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()); 

} 
} 

enter image description here

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中生成的代码。