Hi Freeman,
Effectively the com.sun package had little chance to be found on an IBM JDK..
- Launching the command packages:exports |grep
org.apache.xerces.jaxp.validation did not show any xerces package!
1) I then installed
<dependency>
<groupId>org.apache.servicemix.bundles</groupId>
<artifactId>org.apache.servicemix.bundles.xerces</artifactId>
<version>2.10.0_1</version>
</dependency>
2) and updated the system.properties of the child instance with
javax.xml.validation.SchemaFactory:http\://www.w3.org/2001/XMLSchema=com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory
3) and added explicitly the org.apache.xerces.jaxp.validation to the
Import-Package of the Manifest.
All of those points were necessary to start the bundle correctly (ok maybe not
the 2nd point as it's IBM JRE default value)
Thanks for your help and useful advices!! :)
Regards,
Guillaume.
-----Original Message-----
From: Freeman Fang [mailto:[email protected]]
Sent: Tuesday, July 10, 2012 01:41
To: [email protected]
Subject: Re: IBM JDK XMLSchemaFactory
Hi,
On IBM JDK there's no package like
com.sun.org.apache.xerces.internal.jaxp.validation, so you shouldn't use
javax.xml.validation.SchemaFactory:http\://www.w3.org/2001/XMLSchema=com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory
you should use
javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory
instead.
Also, you can add Package-Import org.apache.xerces.jaxp.validation to
your customer bundle to see if it helps.
Also, you can use
packages:exports |grep org.apache.xerces.jaxp.validation
from the SMX console to see if the package
org.apache.xerces.jaxp.validation is available from OSGi container.
Freeman
On 2012-7-9, at 下午4:43, PAC Kieffer Guillaume wrote:
> Hi,
>
> I am facing a problem using Servicemix with IBM JDK for XSD
> validation.
> The environment is the following: IBM JDK 1.6.0 64b; ServiceMix 4.4.1
>
> The following exception is raised while trying to locate a xsd file
> within a CAMEL route:
>
> org.apache.camel.ResolveEndpointFailedException: Failed to resolve
> endpoint: validator://myxsd-1.0.xsd due to: http://www.w3.org/2001/XMLSchema
> ..
> Caused by: java.lang.IllegalArgumentException:
> http://www.w3.org/2001/XMLSchema
> at
> javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:194)
>
> I already had issues with the IBM default jaxp properties and
> Servicemix; They were solved by updating the SMX etc/
> system.properties with a new javax.xml.transform.TransformerFactory
> value..
>
> After some googling I saw a similar issue but only on Java 5 (:O)
> that could be solved by updating the SchemaFactory property for the
> XMLSchema namespace with the following:
> javax.xml.validation.SchemaFactory:http\://www.w3.org/2001/XMLSchema=com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory
> I tried this option, but no change, the exception is still there.
> Note that the default property used by IBM JDK is:
> javax.xml.validation.SchemaFactory:http\://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory
>
> On my local environment (Windows and Oracle JDK) no issue at all...
>
> Thanks to share your experience :)
>
> Regards,
> Guillaume.
>
---------------------------------------------
Freeman Fang
FuseSource
Email:[email protected]
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042