【问题标题】:XML-RPC error while running client运行客户端时出现 XML-RPC 错误
【发布时间】:2010-11-23 07:44:15
【问题描述】:
Exception in thread "Thread-4" java.lang.InstantiationError: org.apache.xmlrpc.XmlRpcRequest
    at org.apache.xmlrpc.XmlRpcRequestProcessor.decodeRequest(XmlRpcRequestProcessor.java:82)
    at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:143)
    at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
    at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
    at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
    at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
    at java.lang.Thread.run(Unknown Source)

这是我在 XML-RPC 中的 localhost 上运行客户端代码时遇到的错误。我用JAVA制作了服务器和客户端。我的服务器进程似乎运行正常。它正在成功等待客户端请求。

以下是我的客户代码。

package rpcpkg;

import java.net.URL;
import java.util.Vector;

import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

public class SimpleXmlrpc {

    public SimpleXmlrpc() {
    }

    public static void main(String[] args) {

        XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();

        try{

          config.setServerURL(new URL("http://localhost:8089/workspace3/JAVARPC/RPCSRC/rpcserverpkg/"));

            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);

            Vector params = new Vector();
            params.addElement(new Integer(17));
            params.addElement(new Integer(13));

            Object result = client.execute("sample.sum", params);

            int sum = ((Integer) result).intValue();
            System.out.println("The sum is: "+ sum);

        }
        catch(Exception e)
        {
            System.out.println("Exception: " + e.getMessage());
    }
    }
}

【问题讨论】:

  • 您是否尝试使用另一个 XML RPC 客户端而不是 Java 客户端调用服务器?
  • 不,我没有。我希望客户使用 JAVA。
  • 这并不意味着您不能与其他客户进行故障排除,以帮助您了解发生了什么/问题出在什么端......
  • 我同意马特 b。这将有助于确定服务器是否存在问题。另外,您可以访问服务器日志吗?他们是服务器上的错误吗?您的客户端甚至访问服务器吗?

标签: java xml-rpc


【解决方案1】:

正如 matt 和 Stu 所说,您可以使用另一个客户端检查您的 XML-RPC 服务器的响应。

这是python中的一个例子

#!/usr/bin/python
import xmlrpclib
import sys

def main(argv):
    client = xmlrpclib.ServerProxy("http://localhost:8089/workspace3/JAVARPC/RPCSRC/rpcserverpkg/")
    xmlresponse = client.sample.sum(17,13)
    print xmlresponse

if __name__ == "__main__":
   main(sys.argv[1:])

【讨论】:

    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多