繁体   English   中英

使用eclipse和axis 2生成第一个Web服务客户端的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM