1

Apache の ws-xmlrpc API 実装を使用して xmlrpc サーバーを開発しています。

私が受け取る xml リクエストは、次のようなものです。

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

ご覧のとおり、「Calculator.add」など、リクエストでハンドラーが指定されていません。

メソッド名「add」のリクエストがハンドラー「Calculator」によって管理されるように、サーバーにデフォルトハンドラーを追加する方法を見つける必要があります。

前もって感謝します

レオナルド

4

2 に答える 2

0

以下は、それを達成するための最良の方法です。ハンドラー マッピングを追加するときは、デフォルトのクラスの代わりにこのクラスを使用します。

public class MyHandlerMapping extends 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 に答える
0

「$default」という名前でハンドラを登録できます。その後、「handlerName」は必要ありません。メソッド呼び出しで。

http://ws.apache.org/xmlrpc/xmlrpc2/server.htmlの「XML-RPC ハンドラ オブジェクト」を参照してください。

于 2013-06-19T10:09:06.570 に答える