Hi Folks,

I am using Clerezza in combination with Karaf for approximately a month
now and am quite satisfied this far. Now I am trying to add a CXF based
Rest interface to store triples in our Jena TDB store. The interface
looks something like this:

  @Override
  @POST
  @Path( "/" )
  public void put( String data ) {
      InputStream in = new ByteArrayInputStream( data.getBytes( "UTF-8" ) );
      MGraph graph = new SimpleMGraph();
      getParserService().parse( graph, in, SupportedFormat.RDF_XML ); 
// LinkageError

      ... further processing
  }

When doing this I end up with the following error:

Caused by: java.lang.LinkageError: loader constraint violation: when
resolving method
"org.apache.xerces.util.ParserConfigurationSettings.<init>(Lorg/apache/xerces/xni/parser/XMLComponentManager;)V"
the class loader (instance of
org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5) of
the current class, org/apache/xerces/parsers/BasicParserConfiguration,
and the class loader (instance of
org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5) for
resolved class, org/apache/xerces/util/ParserConfigurationSettings, have
different Class objects for the type
gs.<init>(Lorg/apache/xerces/xni/parser/XMLComponentManager;)V used in
the signature
    at org.apache.xerces.parsers.BasicParserConfiguration.<init>(Unknown
Source)
    at org.apache.xerces.parsers.DTDConfiguration.<init>(Unknown Source)
    at
org.apache.xerces.parsers.StandardParserConfiguration.<init>(Unknown Source)
    at
org.apache.xerces.parsers.StandardParserConfiguration.<init>(Unknown Source)
    at
com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.create(RDFXMLParser.java:117)
    at com.hp.hpl.jena.rdf.arp.JenaReader.<init>(JenaReader.java:62)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.7.0_02]
    at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)[:1.7.0_02]
    at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.7.0_02]
    at
java.lang.reflect.Constructor.newInstance(Constructor.java:525)[:1.7.0_02]
    at java.lang.Class.newInstance0(Class.java:372)[:1.7.0_02]
    at java.lang.Class.newInstance(Class.java:325)[:1.7.0_02]
    at
com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl.getReader(RDFReaderFImpl.java:113)
    at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:226)
    at
org.apache.clerezza.rdf.jena.parser.JenaParserProvider.parse(JenaParserProvider.java:68)
    ...

Prior to introducing the Rest interface I have been using a custom Karaf
command to do nearly the same thing. Up until introducing the Rest
interface that command worked without problems. Now it gives this exact
same error.

I suspect there is something wrong with my packaging. But am not sure
what is causing this. Looking up the class in question gives the
following result:

    karaf@root>osgi:find-class XMLComponentManager

    Apache ServiceMix :: Bundles :: saaj-impl (143)
    com/sun/org/apache/xerces/internal/xni/parser/XMLComponentManager.class

    Apache ServiceMix :: Bundles :: xercesImpl (144)
    org/apache/xerces/xni/parser/XMLComponentManager.class

    Clerezza Ext - Jena TDB OSGi Bundle (176)
    org/apache/xerces/xni/parser/XMLComponentManager.class

Unfortunately I am starting to run out of options. Does this look
familiar to anyone here on the list? Any other clues are highly appreciated.

Regards,

Minto van der Sluis

Reply via email to