Неправильная сигнатура метода при создании веб-сервиса в Axis2 в JAVA - PullRequest
1 голос
/ 03 апреля 2012

Попытка сгенерировать мой первый веб-сервис Axis2 с использованием eclipse.

По сути, я начал создавать Dynamic Web Project и иметь простой класс TestService с одним открытым методом Echo, который получает строковый параметр и возвращает его.

Я использовал мастер для создания сервиса из этого класса TestService, и это, похоже, работает без проблем.Когда я запускаю Tomcat, я вижу свой сервис с доступным методом Echo.

Проблема начинается, когда я пытаюсь построить клиент.Я создал другой проект Java и назвал его TestClient.

Затем я выбрал свой TestService.java и выбрал «Создать»> «Веб-службы»> «Клиент веб-службы».Для клиента веб-сервиса я выбрал свой проект TestClient и, как и ожидалось, получил два новых файла в своем проекте TestClient.Одним из них является TestServiceStub.java.

Итак, проблема ....

Сгенерированная заглушка имеет неверный параметр.Когда я пытаюсь вызвать мой метод 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();
        }
    }
}
...