java - 创建 Java Web 服务客户端

标签 java eclipse web-services soap apache-axis

这几天我在网上搜索了很多方法来解决这个问题,但还是没有解决。问题是这样的。我在 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 作为 SOAP 引擎,使用 Tomcat 7 作为服务器。当我尝试使用此网络服务时出现问题。我在 eclipse 和 Axis2 中创建了 Web 服务客户端,自动生成“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应用程序中显示。因为这是我项目的第二部分。请帮我。 谢谢。

最佳答案

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

关于java - 创建 Java Web 服务客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349420/

相关文章:

Java 作用域规则和内部类

java - RxJava 发出多个错误

java - 如何在我的类中设置要调用到方法中的值“Present Value”

eclipse - 在 Eclipse 中使用 RustDT 时如何配置 Rust 安装路径?

java - Jersey client.setChunkedEncodingSize(null) 不起作用

Java继承接口(interface)中的注解

java - maven 依赖拉错了依赖

java - 如何使用 JAVA 设置文件的通用属性,如标题、主题、评论、公司等

Eclipse 在点击 command + q 时不确认退出

java - webservice 500连接异常和UnsupportedOperationException