Hi Andy, That was a good hint !
I've moved to Xerces 2.9.1 in the Apache Jena 2.7.3 distribution and this works fine now. I think it would be smart to document this somehow, having guides on how to use Jena in a enterprise environment would be valuable. Any hints on where to contribute would be appreciated Met Vriendelijke Groet / With Kind Regards Bart van Leeuwen @semanticfire ############################################################## # netage.nl # http://netage.nl # Enschedepad 76 # 1324 GJ Almere # The Netherlands # tel. +31(0)36-5347479 ############################################################## From: Andy Seaborne <[email protected]> To: [email protected], Date: 29-08-2012 10:48 Subject: Re: Sparql 11 Remote Update Query in J2EE container Sent by: Andy Seaborne <[email protected]> Which version of xml-apis is in your environment? Jena uses Xerces 2.10.0 which depends on xml-apis 1.4.01 which includes org/w3c/dom/ElementTraversal. xml-apis 1.3.0 does not include org/w3c/dom/ElementTraversal. Xerces 2.9.1 depends on xml-apis 1.3.0. What might well work is using Xerces 2.9.1 with Jena. I don't think we have any specific requirement to use use Xerces 2.10.0 but Xerces and xml-pais must move in-step. (versions of Xerces have been a perennial problems - various systems, esp containers, require or even force specific versions, but there is no 'right' choice for every thing). Andy On 28/08/12 19:55, Bart van Leeuwen wrote: > Okay > > I decided to completely give up on this for now, instead I implemented a > very simple Sparql11 update function which uses HttpUrlConnection to do > the Post. > > It seems that the standard environment shipped with the Jena binary > doesn't really match that what is supplied with Geronimo. > Is there a solution for this ? building it from source with the libs from > Geronimo ? > > Any advice would be greatly appreciated. > > Met Vriendelijke Groet / With Kind Regards > Bart van Leeuwen > @semanticfire > > ############################################################## > # netage.nl > # http://netage.nl > # Enschedepad 76 > # 1324 GJ Almere > # The Netherlands > # tel. +31(0)36-5347479 > ############################################################## > > > > From: Milorad Tosic <[email protected]> > To: "[email protected]" <[email protected]>, > Date: 28-08-2012 12:01 > Subject: Re: Sparql 11 Remote Update Query in J2EE container > > > > I'm not familiar with Geronimo. However, the settings could be applied at > container level but also at application level, if that helps you at all? > That would be my best guess where to target efforts... > > > Milorad > > > > >> ________________________________ >> From: Bart van Leeuwen <[email protected]> >> To: [email protected] >> Sent: Tuesday, August 28, 2012 11:39 AM >> Subject: Re: Sparql 11 Remote Update Query in J2EE container >> >> Hi Milorad, >> >> This sounds like something that could work, however geronimo doesn't >> accept this in the deployment plan. >> I'm a bit reluctant to set this system wide. any other ideas ? >> >> >> Met Vriendelijke Groet / With Kind Regards >> Bart van Leeuwen >> @semanticfire >> >> ############################################################## >> # netage.nl >> # http://netage.nl >> # Enschedepad 76 >> # 1324 GJ Almere >> # The Netherlands >> # tel. +31(0)36-5347479 >> ############################################################## >> >> >> >> From: Milorad Tosic <[email protected]> >> To: "[email protected]" <[email protected]>, >> Date: 28-08-2012 11:17 >> Subject: Re: Sparql 11 Remote Update Query in J2EE container >> >> >> >> Hi, >> >> I have had a similar problem some time ago and it turned to be XML >> compiler issue that is solved if the container is directed to use >> appropriate version of XML compiler. What worked for me is the following >> settings in web.xml: >> >> <system-property javax.xml.parsers.DocumentBuilderFactory= >> >> "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"/> >> <system-property javax.xml.parsers.SAXParserFactory= >> >> "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"/> >> >> >> regards, >> Milorad >> >> >> >> >>> ________________________________ >>> From: Bart van Leeuwen <[email protected]> >>> To: [email protected] >>> Sent: Tuesday, August 28, 2012 11:02 AM >>> Subject: Sparql 11 Remote Update Query in J2EE container >>> >>> Hi List, >>> >>> I'm having a issue with Jena Update in a J2EE deployed servlet >>> 1) J2EE container is geronimo v3 >>> 2) Jena is version 2.7.3 >>> >>> I like to have a servlet do a Sparql11 update request to a remote 1.1 >>> store. >>> >>> When I create a standalone java application and run the code it works >>> fine, when I use the same code in a servlet I run into a class not found > >>> exception >>> The package deployed to the server does contain all the right jars. >>> >>> I'm not sure if this is a Jena or Geronimo issue. >>> >>> Code: >>> >>> UpdateRequest update = UpdateFactory.create("insert data { GRAPH < >>> http://example.com> { <http://example/book1> <http://blah> 42 } >>> }",Syntax.syntaxSPARQL_11); >>> UpdateProcessRemote firebrary = (UpdateProcessRemote) >>> UpdateExecutionFactory.createRemote(update, " >>> http://localhost:3030/firebrary/update"); >>> firebrary.execute(); >>> >>> Exception: >>> >>> com.hp.hpl.jena.query.QueryParseException: org/w3c/dom/ElementTraversal >>> >>> com.hp.hpl.jena.sparql.lang.ParserARQUpdate._parse(ParserARQUpdate.java:86) >>> >>> com.hp.hpl.jena.sparql.lang.ParserARQUpdate.parse$(ParserARQUpdate.java:41) >>> com.hp.hpl.jena.sparql.lang.UpdateParser.parse(UpdateParser.java:42) >>> com.hp.hpl.jena.update.UpdateFactory.make(UpdateFactory.java:84) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:75) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:53) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:43) >>> tester.Tester.go(Tester.java:26) >>> info.resc.sandbox.GenericTest.doGet(GenericTest.java:43) >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:575) >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:668) >>> >>> root cause >>> >>> java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal >>> java.lang.ClassLoader.defineClass1(Native Method) >>> java.lang.ClassLoader.defineClass(ClassLoader.java:791) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.defineClass(GeronimoClassLoader.java:213) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.findLocalClass(GeronimoClassLoader.java:237) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85) >>> java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>> > org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown >> >>> Source) >>> org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown > >>> Source) >>> > org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown >> >>> Source) >>> org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown >>> Source) >>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown >> Source) >>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown >> Source) >>> org.apache.xerces.parsers.XMLParser.parse(Unknown Source) >>> org.apache.xerces.parsers.DOMParser.parse(Unknown Source) >>> org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) >>> java.util.XMLUtils.getLoadingDoc(XMLUtils.java:102) >>> java.util.XMLUtils.load(XMLUtils.java:74) >>> java.util.Properties.loadFromXML(Properties.java:868) >>> com.hp.hpl.jena.util.Metadata.read(Metadata.java:80) >>> com.hp.hpl.jena.util.Metadata.addMetadata(Metadata.java:54) >>> com.hp.hpl.jena.util.Metadata.<init>(Metadata.java:48) >>> com.hp.hpl.jena.JenaRuntime.<clinit>(JenaRuntime.java:37) >>> >>> com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl.<clinit>(RDFReaderFImpl.java:74) >>> >> com.hp.hpl.jena.rdf.model.impl.ModelCom.<clinit>(ModelCom.java:54) >>> >>> com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:142) >>> >>> com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:136) >>> com.hp.hpl.jena.vocabulary.OWL.<clinit>(OWL.java:37) >>> >> com.hp.hpl.jena.sparql.graph.NodeConst.<clinit>(NodeConst.java:41) >>> > com.hp.hpl.jena.sparql.lang.ParserBase.<init>(ParserBase.java:55) >>> >>> com.hp.hpl.jena.sparql.lang.ParserQueryBase.<init>(ParserQueryBase.java:39) >>> >>> com.hp.hpl.jena.sparql.lang.arq.ARQParserBase.<init>(ARQParserBase.java:26) >>> com.hp.hpl.jena.sparql.lang.arq.ARQParser.<init>(ARQParser.java:6613) >>> >>> com.hp.hpl.jena.sparql.lang.ParserARQUpdate._parse(ParserARQUpdate.java:62) >>> >>> com.hp.hpl.jena.sparql.lang.ParserARQUpdate.parse$(ParserARQUpdate.java:41) >>> com.hp.hpl.jena.sparql.lang.UpdateParser.parse(UpdateParser.java:42) >>> com.hp.hpl.jena.update.UpdateFactory.make(UpdateFactory.java:84) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:75) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:53) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:43) >>> tester.Tester.go(Tester.java:26) >>> info.resc.sandbox.GenericTest.doGet(GenericTest.java:43) >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:575) >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:668) >>> >>> root cause >>> >>> java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:467) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85) >>> java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>> java.lang.ClassLoader.defineClass1(Native Method) >>> java.lang.ClassLoader.defineClass(ClassLoader.java:791) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.defineClass(GeronimoClassLoader.java:213) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) >>> >>> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.findLocalClass(GeronimoClassLoader.java:237) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) >>> >>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) >>> >>> org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85) >>> java.lang.ClassLoader.loadClass(ClassLoader.java:356) >>> > org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown >> >>> Source) >>> org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown > >>> Source) >>> > org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown >> >>> Source) >>> org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown >>> Source) >>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown >> Source) >>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown >> Source) >>> org.apache.xerces.parsers.XMLParser.parse(Unknown Source) >>> org.apache.xerces.parsers.DOMParser.parse(Unknown Source) >>> org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) >>> java.util.XMLUtils.getLoadingDoc(XMLUtils.java:102) >>> java.util.XMLUtils.load(XMLUtils.java:74) >>> java.util.Properties.loadFromXML(Properties.java:868) >>> com.hp.hpl.jena.util.Metadata.read(Metadata.java:80) >>> com.hp.hpl.jena.util.Metadata.addMetadata(Metadata.java:54) >>> com.hp.hpl.jena.util.Metadata.<init>(Metadata.java:48) >>> com.hp.hpl.jena.JenaRuntime.<clinit>(JenaRuntime.java:37) >>> >>> com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl.<clinit>(RDFReaderFImpl.java:74) >>> >> com.hp.hpl.jena.rdf.model.impl.ModelCom.<clinit>(ModelCom.java:54) >>> >>> com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:142) >>> >>> com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:136) >>> com.hp.hpl.jena.vocabulary.OWL.<clinit>(OWL.java:37) >>> >> com.hp.hpl.jena.sparql.graph.NodeConst.<clinit>(NodeConst.java:41) >>> > com.hp.hpl.jena.sparql.lang.ParserBase.<init>(ParserBase.java:55) >>> >>> com.hp.hpl.jena.sparql.lang.ParserQueryBase.<init>(ParserQueryBase.java:39) >>> >>> com.hp.hpl.jena.sparql.lang.arq.ARQParserBase.<init>(ARQParserBase.java:26) >>> com.hp.hpl.jena.sparql.lang.arq.ARQParser.<init>(ARQParser.java:6613) >>> >>> com.hp.hpl.jena.sparql.lang.ParserARQUpdate._parse(ParserARQUpdate.java:62) >>> >>> com.hp.hpl.jena.sparql.lang.ParserARQUpdate.parse$(ParserARQUpdate.java:41) >>> com.hp.hpl.jena.sparql.lang.UpdateParser.parse(UpdateParser.java:42) >>> com.hp.hpl.jena.update.UpdateFactory.make(UpdateFactory.java:84) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:75) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:53) >>> >> com.hp.hpl.jena.update.UpdateFactory.create(UpdateFactory.java:43) >>> tester.Tester.go(Tester.java:26) >>> info.resc.sandbox.GenericTest.doGet(GenericTest.java:43) >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:575) >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:668) >>> >>> Met Vriendelijke Groet / With Kind Regards >>> Bart van Leeuwen >>> @semanticfire >>> >>> ############################################################## >>> # netage.nl >>> # http://netage.nl >>> # Enschedepad 76 >>> # 1324 GJ Almere >>> # The Netherlands >>> # tel. +31(0)36-5347479 >>> ############################################################## >>> >>> >> >> >> >
