Hello,
When you use the method "updateResource("PO-NI-01", updateXml);" the
operation only concerns the document called PO-NI-01. I think this
document does not exist in your database.
When you test this line : ResourceSet resourceSet =
queryService.query(queryXml);. the operation concerns on the whole
collection.
To correct your program, you should use this method:
"updateService.*update*(updateXml);", because the operation concerns the
whole collection. Or you should check if the document "PO-NI-01" exists.
Tell me whether it helps you or not,
Yan.
Julie McCabe wrote:
Hello,
Im trying to execute a xupdate to change the value of an element in an
document.
String updateXml = "<xupdate:modifications version=\"1.0\""
+ " xmlns:xupdate=\"http://www.xmldb.org/xupdate\">"
+ "<xupdate:update
select=\"/domain/[EMAIL PROTECTED]'PLAYOUT']/memberVariable[name='channel'] \">"
+ "channel1"
+ "</xupdate:update>"
+ "</xupdate:modifications>";
Collection collection = con.getCollection();
XUpdateQueryService updateService = (XUpdateQueryService)
collection.getService("XUpdateQueryService", "1.0");
updateService.updateResource("PO-NI-01", updateXml);
The exception thrown is @ the server ...
1168620 [http-8080-Processor23] WARN
org.apache.xindice.core.xupdate.XUpdateQueryResolver - ignored exception
java.lang.NullPointerException
at org.xmldb.xupdate.lexus.commands.UpdateCommand.execute(Unknown
Source)
at
org.apache.xindice.core.xupdate.XUpdateImpl.execute(XUpdateImpl.java:116)
at
org.apache.xindice.core.xupdate.XUpdateQueryResolver$XUpdateQuery.execute(XUpdateQueryResolver.java:142)
at
org.apache.xindice.core.xupdate.XUpdateQueryResolver.query(XUpdateQueryResolver.java:84)
at
org.apache.xindice.core.query.QueryEngine.query(QueryEngine.java:122)
at
org.apache.xindice.core.Collection.queryDocument(Collection.java:1242)
at org.apache.xindice.server.rpc.messages.Query.execute(Query.java:58)
at
org.apache.xindice.server.rpc.RPCMessageInterface.run(RPCMessageInterface.java:48)
at sun.reflect.GeneratedMethodAccessor137.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.xmlrpc.Invoker.execute(XmlRpcServer.java)
at
org.apache.xmlrpc.XmlRpcServer$Worker.executeInternal(XmlRpcServer.java)
at org.apache.xmlrpc.XmlRpcServer$Worker.execute(XmlRpcServer.java)
at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java)
at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java)
at
org.apache.xindice.server.XindiceServlet.doPost(XindiceServlet.java:90)
....................
From the client it appears as if the update is successfull! Ive tested the
select part of the xupdate query and it returns a document segement as
expected - I tested this with ....
Collection collection = con.getCollection();
XPathQueryService queryService = (XPathQueryService)
collection.getService("XPathQueryService", "1.0");
ResourceSet resourceSet = queryService.query(queryXml);
Any ideas on this matter are greatly appreciated, as it doesnt make sense to
me :)
Configuration: xindice 1.1b4, tomcat 5.0.30, jdk 1.5, os RH 9.0.
Regards,
Julie.