我正在尝试使用Axis2 v1.5,Tomcat6和Java 1.6开发一个简单的Hello World Web服务,根据以下tutorial。
但是,我在客户端代码编译中遇到错误:
javac -extdirs C:\\axis2-1.5 org/apache/axis2/*.java -d temp/
返回
code\src\org\apache\ws\axis2\Client.java:13: cannot find symbol
symbol : method setParam0(java.lang.String)
location: class org.apache.axis2.TempStub.Echo
request.setParam0("Hello world");
正如您所看到的,我对原始教程进行了一些更改,但是,即使完全按照说明操作,我仍会遇到相同的错误。
我还尝试使用旧版Java和javac的-source 1.3和-target 1.3参数,但问题仍然存在。
有什么想法吗? 对于一个简单的教程,这个废话给我带来了很多麻烦......
提前干杯和谢谢
答案 0 :(得分:2)
教程有拼写错误,应该是setValue,而不是setParam0,如:
HelloWorldStub.Echo request = new HelloWorldStub.Echo();
request.setValue("My Parameter Value");
答案 1 :(得分:1)
我也一直试图让这个工作,并使用jd-gui或jad我发现在临时目录SimpleServiceStub$Echo
类有这个方法:
public void setArgs0(String paramString)
{
if (paramString != null)
{
this.localArgs0Tracker = true;
}
else this.localArgs0Tracker = true;
this.localArgs0 = paramString;
}
在Client.java
的基础上,您应该使用setArgs0("hello world");
答案 2 :(得分:0)
使用此声明:request.setArgs0("Hello World");
答案 3 :(得分:0)
我同意Mark,这是一个教程错字。教程ws方法是:
public String echo(String value) {
return value;
}
所以关联的客户端指令应该是: request.setValue(“我的参数值”);
基本上,如果Web服务方法是:
public String echo(String whatever) {
return whatever;
}
关联的客户端调用将是: request.setWhatever(“我的参数值”);