According to the javadoc of javax.xml.validation.SchemaFactory#newInstance, I can specify which implementation of SchemaFactory I want, by placing a file in META-INF/services called javax.xml.validation.SchemaFactory with the required class (in my case org.apache.xerces.jaxp.validation.XMLSchemaFactory).
This works fine when I run Weblogic using the HotSpot JVM, but when using the JRockit JVM, it doesn't find anything in the META-INF/services directory (I've stepped through the code on the server and i开发者_JAVA技巧n javax.xml.validation.SchemaFactoryFinder#createServiceFileIterator, the Enumeration returns empty for JRockit but the correct resouce for HotSpot). I think it might be because it is using a different classloader.
Any suggestions?
In the end I worked around this problem by setting -Djavax.xml.validation.SchemaFactory=org.apache.xerces.jaxp.validation.XMLSchemaFactory in the weblogic startup script
精彩评论