[英]Issue generating first web service client using eclipse and axis 2
我完全按照本教程的每个步骤进行操作(跳过步骤4除外,因为我现在只想在eclipse中使用它)。
我小心地使用了每个软件的确切版本(Eclipse Helios,2轴1.5.2等)。 我正在mac os x 10.7.5上运行此程序,现在在本教程中的Windows上运行。
无论如何,一切顺利,直到我创建测试客户端的第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());
}
}
FirstWebServiceLocator
是Axis 1.x生成的类,但本教程中的代码需要Axis2生成的代码。
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服务库。 一个不仅是另一个的更高版本。 看来您以某种方式使用了错误的代码生成器来生成这些类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.