JRockit 与 HotSpot 类加载问题 - META-INF/服务

发布于 2024-09-16 17:24:35 字数 491 浏览 8 评论 0原文

根据 javax.xml.validation.SchemaFactory#newInstance 的 javadoc,我可以通过在 META-INF/services 中放置一个名为 javax.xml.validation.SchemaFactory 的文件来指定我想要的 SchemaFactory 的实现,其中包含所需的类(在我的案例 org.apache.xerces.jaxp.validation.XMLSchemaFactory)。

当我使用 HotSpot JVM 运行 Weblogic 时,效果很好,但是当使用 JRockit JVM 时,它在 META-INF/services 目录中找不到任何内容(我已经单步执行了服务器上和 javax.xml 中的代码)。 validation.SchemaFactoryFinder#createServiceFileIterator,对于 JRockit,枚举返回空,但对于 HotSpot,返回正确的资源)。我认为这可能是因为它使用了不同的类加载器。

有什么建议吗?

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 in 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

涙—继续流 2024-09-23 17:24:36

最后我通过在weblogic启动脚本中设置 -Djavax.xml.validation.SchemaFactory=org.apache.xerces.jaxp.validation.XMLSchemaFactory 解决了这个问题

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文