我正在使用apache的ws-xmlrpc api实现开发一个xmlrpc服务器。
我将收到的xml请求与此类似:
<methodCall><methodName>add</methodName><params><param>
如您所见,请求中未指定处理程序,例如“Calculator.add”。
我需要找到一种方法来向服务器添加默认处理程序,以便方法名称“add”的请求将由处理程序“Calculator”管理。
提前致谢
莱昂纳多答案 0 :(得分:0)
您可以使用名称“$ default”注册处理程序,然后您不需要“handlerName”。在方法调用中。
请参阅“{-3}}”下的“XML-RPC处理程序对象”
答案 1 :(得分:0)
以下是实现它的最佳方法。添加处理程序映射时使用此类而不是默认类。
public class MyHandlerMapping扩展了PropertyHandlerMapping {
@Override
public XmlRpcHandler getHandler(String pHandlerName)
throws XmlRpcNoSuchHandlerException, XmlRpcException {
XmlRpcHandler result = null;
try {
result = super.getHandler("Calculator." + pHandlerName);
} catch (Exception ex) {
System.out
.println("Ignoring ALL exceptions so that default one will also get executed");
}
if (result == null) {
if ((result = super.getHandler(pHandlerName)) == null)
throw new XmlRpcNoSuchHandlerException("No such handler: "
+ pHandlerName);
}
return result;
}
}