创建Java Web服务客户端

时间:2012-02-19 13:08:50

标签: java eclipse web-services soap axis2

最近几天我在互联网上搜索解决了这个问题,但我还是无法解决这个问题。问题是这个。我在Eclipse Indigo中实现了一个简单的Web服务,如下所示

package com.testvtfour.ws;

public class Customer {

private String name;

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

public String getName() {
    return name;
}
}

Web服务部分是完美的。我使用Axis2作为肥皂引擎& Tomcat 7作为服务器。当我尝试使用此Web服务时出现问题。我在eclipse& amp;创建了Web服务客户端。 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());
}
}

但总是打印“null”。这是为什么?我怎么解决这个问题? &安培;我想知道这种客户端的更新值可以在Android应用程序中显示。因为这是我项目的第二部分。请帮我。 谢谢。

1 个答案:

答案 0 :(得分:2)

Axis2 Web服务通常是无状态的。这意味着getName()在与调用setName()不同的实例上调用,因此当您尝试检索name时{{1}}为空。