尝试使用eclipse生成我的第一个Axis2 Web服务。
基本上,我开始创建动态Web项目并使用一个简单的TestService类,其中一个公共方法Echo接收字符串参数并返回它。
我使用向导从这个TestService类创建服务,这似乎没有问题。当我运行Tomcat时,我可以使用Echo方法查看我的服务。
当我尝试构建客户端时,问题就出现了。我创建了另一个java项目并将其命名为TestClient。
然后我选择了我的TestService.java并选择了New> Web服务> Web服务客户端。对于webservice客户端,我选择了我的TestClient项目,正如预期的那样,我的TestClient项目中有两个新文件。其中一个是TestServiceStub.java。
所以,问题......
生成的Stub有错误的参数。当我尝试从客户端调用我的Echo方法时,intellisense显示方法的签名类似于Echo(Echo Echo0)......我的Echo方法应该类似于Echo(String string)。
此参数来自何处?我错过了什么?
感谢。
更新
好吧,想通了我的问题。我被一些糟糕的互联网帖子误导了,并没有看得更远。我的服务一切都很好,我根本就不知道怎么称呼它。以下是正确调用(来自客户端)上述服务的代码:
package testserviceclient;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import testpackage.TestClassStub;
import testpackage.TestClassStub.Echo;
import testpackage.TestClassStub.EchoResponse;
public class mainClass {
public static void main(String[] args) {
try {
TestClassStub stub = new TestClassStub();
Echo e = new Echo();
e.setValue("Hello World");
EchoResponse res = stub.echo(e);
System.out.println("Result : " + res.get_return());
} catch(AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}