Hi,

Yeah, if hapi-osgi-base bundle embed xerces jar, it's definitely the cause.
And it's not the best practice in OSGi world that a bundle embed any jar, it 
should use the one from OSGi container.
You may need re-wrap hapi-osgi-base yourself to fix it.
 
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

On 2012-10-30, at 下午10:42, wdavjones wrote:

> Hello. I'm getting classloader errors when using HAPI-OSGI (hapi-osgi-base)
> which is installed with the Camel-HL7 feature. I suspect the problem is that
> hapi-osgi-base embeds an older version of Xerces but I'm not familiar enough
> with OSGi to be confident.  My environment: ServiceMix 4.4.2, Camel 2.8.5,
> JDK 1.6U7, WinXP. 
> 
> My route:
> 
>       <bean id="SimpleTranformer" 
> class="simple.messaging.app.SimpleTransformer"
> />
>       <camelContext trace="false" id="blueprintContext"
> xmlns="http://camel.apache.org/schema/blueprint";>
>               <route id="simpleRoute">
>                       <from uri="file:src/input" />
>                       <bean ref="SimpleTranformer" method="transform" />
>                       <to uri="file://src/output" />
>               </route>
>       </camelContext>
> 
> SimpleTransformer.tranform():
> 
>       Message message = HL7Converter.toMessage(body);
>       XMLParser xmlParser = new DefaultXMLParser();  // exception thrown here
> (line 16)
>       return xmlParser.encode(message);
> 
> Produces the following runtime exception:
> 
>       Caused by: java.lang.LinkageError: loader constraint violation: when
> resolving method
> "org.apache.xerces.parsers.DOMParser.<init>(Lorg/apache/xerces/xni/parser/XMLParserConfiguration;)V"
> the class loader (instance of
> org/apache/felix/framework/ModuleImpl$ModuleClassLoaderJava5) of the current
> class, ca/uhn/hl7v2/parser/XMLParser, and the class loader (instance of
> <bootloader>) for resolved class, org/apache/xerces/parsers/DOMParser, have
> different Class objects for the type
> org/apache/xerces/xni/parser/XMLParserConfiguration used in the signature
>               at
> ca.uhn.hl7v2.parser.XMLParser.<init>(XMLParser.java:108)[138:ca.uhn.hapi.osgi-base:1.2]
>               at
> ca.uhn.hl7v2.parser.XMLParser.<init>(XMLParser.java:99)[138:ca.uhn.hapi.osgi-base:1.2]
>               at
> ca.uhn.hl7v2.parser.DefaultXMLParser.<init>(DefaultXMLParser.java:77)[138:ca.uhn.hapi.osgi-base:1.2]
>               at
> simple.messaging.app.SimpleTransformer.transform(SimpleTransformer.java:16)[160:camel-blueprint:1.0.0.SNAPSHOT]
> 
> 
> 
> 
> 
> --
> View this message in context: 
> http://servicemix.396122.n5.nabble.com/Classloader-error-when-using-HAPI-in-ServiceMix-tp5714801.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to