XmlRpcException:没有这样的处理程序:执行 XQuery 时 Default.queryPT
XmlRpcException: No Such Handler: Default.queryPT while executing XQuery
我想对现有数据库启动 XQuery。代码看起来够简单
String driver = "org.exist.xmldb.DatabaseImpl";
Database database = (Database) Class.forName(driver).newInstance();
DatabaseManager.registerDatabase(database);
Collection col = DatabaseManager.getCollection(mydburi, login, pass);
XQueryService service = (XQueryService) collection.getService("XQueryService", "3.0");
String query="xquery version \"1.0\";let $message := 'Hello World!'return <results><message>{$message}</message></results>";
ResourceSet result = service.query(query);`
问题是最后一行抛出异常,例如
org.xmldb.api.base.XMLDBException: No such handler: Default.queryPT
at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:115)
at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:72)
at server.DatabaseManagerExist.doQuery(DatabaseManagerExist.java:230)
at server.DatabaseManagerExist.main(DatabaseManagerExist.java:327)
Caused by: org.apache.xmlrpc.XmlRpcException: No such handler: Default.queryPT
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:158)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:100)
... 3 more
我无法找到有关此异常或它引用的 Default.queryPT 的任何信息,而且我不知道它可能是什么原因造成的。
该集合存在,我可以访问给定的集合来执行其他操作,例如存储或读取资源。我可以在 Exide 中复制查询,它工作得很好。我还尝试了最基本的 Hello World 查询,结果相同。我也使用过 XQueryService 1.0,但没有任何运气。
我正在使用 exist-db v4.0.0 库连接到数据库。
知道什么是处理程序 Default.queryPT 和 how/where 我要更改它吗?
XmlRpcException
是 eXist-db 4.0.0 中更改 XML-RPC API 的结果(由 eXist 开发团队的@adamretter 确认)和您在某些较旧的数据库上使用 4.0.0 库的事实。我认为最好的做法是始终使用相同版本的数据库和库,这样可以避免由于它们的不一致而引起的问题,例如 API.
中可能发生的变化
我想对现有数据库启动 XQuery。代码看起来够简单
String driver = "org.exist.xmldb.DatabaseImpl";
Database database = (Database) Class.forName(driver).newInstance();
DatabaseManager.registerDatabase(database);
Collection col = DatabaseManager.getCollection(mydburi, login, pass);
XQueryService service = (XQueryService) collection.getService("XQueryService", "3.0");
String query="xquery version \"1.0\";let $message := 'Hello World!'return <results><message>{$message}</message></results>";
ResourceSet result = service.query(query);`
问题是最后一行抛出异常,例如
org.xmldb.api.base.XMLDBException: No such handler: Default.queryPT at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:115) at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:72) at server.DatabaseManagerExist.doQuery(DatabaseManagerExist.java:230) at server.DatabaseManagerExist.main(DatabaseManagerExist.java:327)
Caused by: org.apache.xmlrpc.XmlRpcException: No such handler: Default.queryPT 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:158) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147) at org.exist.xmldb.RemoteXPathQueryService.query(RemoteXPathQueryService.java:100) ... 3 more
我无法找到有关此异常或它引用的 Default.queryPT 的任何信息,而且我不知道它可能是什么原因造成的。
该集合存在,我可以访问给定的集合来执行其他操作,例如存储或读取资源。我可以在 Exide 中复制查询,它工作得很好。我还尝试了最基本的 Hello World 查询,结果相同。我也使用过 XQueryService 1.0,但没有任何运气。
我正在使用 exist-db v4.0.0 库连接到数据库。
知道什么是处理程序 Default.queryPT 和 how/where 我要更改它吗?
XmlRpcException
是 eXist-db 4.0.0 中更改 XML-RPC API 的结果(由 eXist 开发团队的@adamretter 确认)和您在某些较旧的数据库上使用 4.0.0 库的事实。我认为最好的做法是始终使用相同版本的数据库和库,这样可以避免由于它们的不一致而引起的问题,例如 API.