1

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

我将收到的 xml 请求是这样的:

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

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

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

提前致谢

莱昂纳多

4

2 回答 2

0

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"

于 2013-06-19T10:09:06.570 回答
0

以下是实现它的最佳方法。添加处理程序映射时,请使用此类而不是默认类。

公共类 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;
}

}

于 2015-03-01T17:15:32.410 回答