【发布时间】:2014-06-20 06:54:23
【问题描述】:
我正在使用 Java 中的 XML-RPC 插件从 Trac 中提取票证信息。
到目前为止,我使用以下代码成功
config.setBasicUserName ("username");
config.setBasicPassword ("password");
config.setServerURL (new URL ("trac_url"));
client = new XmlRpcClient();
client.setConfig (config);
Object [] params = new Object [] {};
Object [] queryResult = null;
try {
queryResult = (Object []) client.execute ("ticket.query", params);
} catch (XmlRpcException e) {
System.out.println(e.getMessage());
System.out.println(e.code);
System.out.println(e.linkedException);
System.out.println(e.getCause());
e.printStackTrace();
}
但是当我将 url 更改为另一个项目时,它只会给出错误消息
供您参考,当我使用相同的 url 在浏览器中打开时,该 url 运行良好,我可以在那里看到门票,但它在程序中不起作用
上面的代码我得到了这个
????????? XML_RPC ??????? // from System.out.println(e.getMessage());
1 // from System.out.println(e.code);
org.apache.xmlrpc.XmlRpcException: ????????? XML_RPC ???????
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:137)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:126)
at xmlropx.ListTracTicket.extractDataFromTrac(ListTracTicket.java:206)
at xmlropx.ListTracTicket.main(ListTracTicket.java:263)
null // from System.out.println(e.linkedException);
null // from System.out.println(e.getCause());
请帮我解决这个问题
【问题讨论】:
-
您是否测试过您可以在出现错误的网站上通过
/login/rpc进行身份验证?这将确认 XmlRpc 已安装并且用户具有适当的权限。 -
@RjOllos 是的,我可以使用浏览器成功登录并查看门票
-
您的帐户可能没有被标记为对该 Trac 实例的 XMLRPC 权限。您可以访问 Trac 的日志文件吗?这应该提供更多关于发生了什么的细节。