0

根据以下教程,我正在尝试使用 Axis2 v1.5、Tomcat6 和 Java 1.6 开发一个简单的 Hello World Web 服务。

但是,我在客户端代码编译中遇到错误:

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");

如您所见,我对原始教程进行了一些更改,但是,即使完全按照说明进行操作,我仍然会遇到相同的错误。

我还尝试使用带有 javac 的 -source 1.3 和 -target 1.3 参数的旧版 Java,但问题仍然存在。

有任何想法吗?对于一个简单的教程,这个废话让我很头疼......

提前欢呼和感谢

4

4 回答 4

2

教程有错别字,应该是setValue,而不是setParam0,如:

        HelloWorldStub.Echo request = new HelloWorldStub.Echo();
        request.setValue("My Parameter Value");
于 2009-09-11T16:48:47.583 回答
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");

于 2011-06-22T12:06:33.343 回答
0

我同意马克,这是一个教程错字。教程 ws 方法是:

public String echo(String value) {
    return value;
}

所以相关的客户端指令应该是:request.setValue("My Parameter Value");

基本上,如果 Web 服务方法是:

public String echo(String whatever) {
    return whatever;
}

关联的客户端调用将是:request.setWhatever("My Parameter Value");

于 2009-12-07T18:20:52.250 回答
0

使用此语句:request.setArgs0("Hello World");

于 2009-10-15T10:36:42.867 回答