Axis2 Hello World - не удается найти набор символовParam0 - PullRequest
0 голосов
/ 24 августа 2009

Я пытаюсь разработать простой веб-сервис Hello World, используя Axis2 v1.5, Tomcat6 и Java 1.6, в соответствии со следующим руководством .

Однако я получаю сообщение об ошибке при компиляции кода на стороне клиента:

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 с параметрами -source 1.3 и -target 1.3 для javac, но проблема остается.

Есть идеи? Для простого урока это дерьмо вызвало у меня много головных болей ...

Приветствия и заранее спасибо

Ответы [ 4 ]

2 голосов
/ 11 сентября 2009

В руководстве есть опечатка, она должна быть setValue, а не setParam0, как в:

        HelloWorldStub.Echo request = new HelloWorldStub.Echo();
        request.setValue("My Parameter Value");
1 голос
/ 22 июня 2011

Я также пытался заставить это работать, и с помощью 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");

0 голосов
/ 07 декабря 2009

Я согласен с Марком, это опечатка в учебнике. Метод ws учебника был:

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

поэтому соответствующая клиентская инструкция должна быть: request.setValue («Значение моего параметра»);

В основном, если метод веб-службы был:

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

связанный вызов клиента будет: request.setWhwhat ("Значение моего параметра");

0 голосов
/ 15 октября 2009

Используйте это утверждение: request.setArgs0("Hello World");

...