Создание клиента веб-службы Java - PullRequest
0 голосов
/ 19 февраля 2012

Последние несколько дней я искал по всему интернету, чтобы решить эту проблему, но пока не мог ее решить. Проблема заключается в следующем. У меня есть простой веб-сервис, реализованный в Eclipse Indigo, следующим образом

package com.testvtfour.ws;

public class Customer {

private String name;

public void setName(String name) {
    this.name = name;
}

public String getName() {
    return name;
}
}

Веб-сервис идеально подходит. Я использовал Axis2 в качестве мыльного движка и Tomcat 7 в качестве сервера. Проблема возникает, когда я пытаюсь использовать этот веб-сервис. Я создал клиент веб-сервиса в eclipse & Axis2. Автоматически генерирует "CusstomerCallBackHandler" и "CustomerStub". Ниже приведен реализованный клиент

package com.testvtfour.ws;
import java.rmi.RemoteException;

import com.testvtfour.ws.CustomerStub.SetName;
import com.testvtfour.ws.CustomerStub.GetNameResponse;
public class TestClient {
public static void main(String[] args)throws RemoteException{
    CustomerStub stub = new CustomerStub();
    com.testvtfour.ws.CustomerStub.SetName obj = new 
        com.testvtfour.ws.CustomerStub.SetName();
    obj.setName("Grant");
    stub.setName(obj);

    com.testvtfour.ws.CustomerStub.GetNameResponse res = stub.getName();
    System.out.println(res.get_return());
}
}

Но всегда это печатает "ноль". Это почему? Как я могу решить это? & Я хочу знать, что обновленное значение этого типа клиента может быть показано в приложении Android. Потому что это вторая часть моего проекта. Пожалуйста, помогите мне. Спасибо.

1 Ответ

2 голосов
/ 19 февраля 2012

Веб-сервис Axis2 обычно не имеет состояния. Это означает, что getName() вызывается в ином экземпляре, чем был вызван setName(), следовательно, name является нулевым, когда вы пытаетесь получить его.

...