java - Apache XML-RPC 的奇怪行为

标签 java xml-rpc

当我使用 Apache XML RPC 时,有一个问题让我很困惑

下面是代码

公共(public)类AdderImpl实现Adder{

private Object obj=new String("Obj1");

public int add(int pNum1, int pNum2) {

    obj="Changed";

    return pNum1 + pNum2;
  }

 public Object get(){

      return this.obj;
 }

}

当我从客户端调用该方法时,对象值仍然是 Obj1,而不是“已更改”

如何获取 obj 的更改值

客户:

公共(public)类客户端{

public static void main(String [] args) throws Exception
{

    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
    config.setServerURL(new URL("http://127.0.0.1:8080/xmlrpc"));
    config.setEnabledForExtensions(true);  
    config.setConnectionTimeout(60 * 1000);
    config.setReplyTimeout(60 * 1000);

    XmlRpcClient client = new XmlRpcClient();

    client.setTransportFactory(
            new XmlRpcCommonsTransportFactory(client));

    client.setConfig(config);

 // make a call using dynamic proxy
    ClientFactory factory = new ClientFactory(client);
    Adder adder = (Adder) factory.newInstance(Adder.class);
    int sum = adder.add(2, 4);
    System.out.println("2 + 4 = " + sum);

    System.out.println(adder.get()==null?true:false);

    System.out.println(adder.get().toString());




}

}

提前致谢

最佳答案

每次都会创建一个新的处理程序。要获得您想要的行为,您有以下选项:

  1. 将值写入数据库/文件(即持久性存储)并从那里读取/写入。
  2. 使字段静态,即

    私有(private)静态对象 obj=new String("Obj1");

希望有帮助。

关于java - Apache XML-RPC 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6556124/

相关文章:

iphone xml-rpc utf8 字符串

java - 如何从 rundll32 调用中捕获结果?

Java项目恢复

java - 什么样的类/对象使用有关多个对象的信息来表示更大的系统?

python - 更改 Odoo XmlRPC 上下文以使用特定语言

magento - 如何获取Magento商店货币

python - 应用程序在微服务架构中通信的最佳方式是什么

java - 在 XmlRpc 服务中获取 cookie

java - SAP JCO for Ubuntu 64 位无法初始化 sapjcorfc

java - Android Things 和 Adafruit Ultimate GPS Breakout v3