当我使用 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());
}
}
提前致谢
最佳答案
每次都会创建一个新的处理程序。要获得您想要的行为,您有以下选项:
- 将值写入数据库/文件(即持久性存储)并从那里读取/写入。
使字段静态,即
私有(private)静态对象 obj=new String("Obj1");
希望有帮助。
关于java - Apache XML-RPC 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6556124/