xmlrpc apache - 如何默认处理程序

时间:2013-04-29 10:03:34

标签: apache xml-rpc

我正在使用apache的ws-xmlrpc api实现开发一个xmlrpc服务器。

我将收到的xml请求与此类似:

<methodCall><methodName>add</methodName><params><param>

如您所见,请求中未指定处理程序,例如“Calculator.add”。

我需要找到一种方法来向服务器添加默认处理程序,以便方法名称“add”的请求将由处理程序“Calculator”管理。

提前致谢

莱昂纳多

2 个答案:

答案 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;
}

}