我正在使用 apache 的 ws-xmlrpc api 实现开发一个 xmlrpc 服务器。
我将收到的 xml 请求是这样的:
<methodCall><methodName>add</methodName><params><param>
如您所见,请求中没有指定处理程序,例如“Calculator.add”。
我需要找到一种将默认处理程序添加到服务器的方法,以便方法名称为“add”的请求将由处理程序“Calculator”管理。
提前致谢
莱昂纳多
You can register your handler with the name "$default", then you don't need the "handlerName." in the method call.
See http://ws.apache.org/xmlrpc/xmlrpc2/server.html, under "XML-RPC Handler Objects"
以下是实现它的最佳方法。添加处理程序映射时,请使用此类而不是默认类。
公共类 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;
}
}