安装到 PostClassLoader 时出错:org.jboss.deployers.spi.DeploymentException:无法处理元数据

发布于 2024-11-13 10:15:52 字数 2021 浏览 3 评论 0原文

预先感谢您提供的任何帮助:

我正在 JBoss 5.0.1 GA 上开发 EJB 3 应用程序。我正在部署的应用程序已经运行了几年,没有出现任何问题。然而最近我一直在升级一些功能,并且我必须更新我的主 EJB 模块 (MyEJB.jar) 使用的库之一。它实际上来自第三方,所以我无法完全控制该库,我们将其称为 foo.jar。因此,MyEJB.jar 使用 foo.jar 作为库,并且已经成功完成了一段时间了。第三方更新了 foo.jar,现在当我部署时,JBoss 报告此错误:安装到 PostClassLoader 时出错:name=vfsfile:/opt/jboss/jboss-5.1.0.GA/server/default/deploy /MyEJB.jar/ state=ClassLoader mode=Manual requiredState=PostClassLoader org.jboss.deployers.spi.DeploymentException: Cannot processmetadata

在堆栈跟踪中的此错误下方,我看到以下内容似乎是以下问题的根本原因问题: 引起原因:java.lang.ClassNotFoundException:来自 BaseClassLoader@68b9ec2b{VFSClassLoaderPolicy@64030c4{name=vfsfile:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/MyEJBjar/domain=ClassLoaderDomain@df1cbf6{ name=DefaultDomainparentPolicy=BEFOREparent=org.jboss.bootstrap.NoAnnotationURLClassLoader@4383f74d}roots=[MemoryContextHandler@16 14911248[路径=上下文=vfsmemory://5c4o01b-7nn4aj-go4u51sb-1-go4u5c2j-24真实=vfsmemory://5c4o01b-7nn4aj-go4u51sb-1-go4u5c2j-24],FileHandler@1915014350[路径=MyEJBjar context=文件:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/ real=文件:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/MyEJBjar/], DelegatingHandler@1308762861[路径=G org.snmp4j.smi、net.sf.json.regexp、包缓存、org.snmp4j.security、net.sf.json、META-INF、net.sf.json.groovy、com.mycompany.util.clip Generation] NON_EMPTY }} 在 org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248) 在org.jboss.deployment.OptAnnotationMetaDataDeployer.processJBossClientMetaData(OptAnnotationMetaDataDeployer.java:115) 在 org.jboss.deployment.OptAnnotationMetaDataDeployer.processMetaData(OptAnnotationMetaDataDeployer.java:82) 在 org.jboss.deployment.AnnotationMetaDataDeployer.deploy(AnnotationMetaDataDeployer.java:177) ... 32 更多

对 Foo 进行什么操作会导致 JBoss 在加载时找不到它?权限和位置相同,所有者也相同(在 Linux RedHat 5.4 上运行)?

如何修复“无法处理元数据”问题?

再次感谢!

干杯,

Thanks in advance for any help you can provide:

I'm developing an EJB 3 application on JBoss 5.0.1 GA. The application I'm deploying has worked for a couple of years with no problems. However recently I've been upgrading some functionality, and I've had to update one of the libraries that my main EJB module (MyEJB.jar) uses. It actually comes from a third party, so I don't have full control over the library, we'll call it foo.jar. So MyEJB.jar uses foo.jar as a library, and has done so successfully for a while now. The third party updated that foo.jar, and now when I deploy, JBoss reports this error: Error installing to PostClassLoader: name=vfsfile:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/MyEJB.jar/ state=ClassLoader mode=Manual requiredState=PostClassLoader org.jboss.deployers.spi.DeploymentException: Cannot process metadata

Below this error in the stack track I see the following that appears to be the root cause of the problem:
Caused by: java.lang.ClassNotFoundException: Foo from BaseClassLoader@68b9ec2b{VFSClassLoaderPolicy@64030c4{name=vfsfile:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/MyEJBjar/ domain=ClassLoaderDomain@df1cbf6{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@4383f74d} roots=[MemoryContextHandler@16
14911248[path= context=vfsmemory://5c4o01b-7nn4aj-go4u51sb-1-go4u5c2j-24 real=vfsmemory://5c4o01b-7nn4aj-go4u51sb-1-go4u5c2j-24], FileHandler@1915014350[path=MyEJBjar
context=file:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/ real=file:/opt/jboss/jboss-5.1.0.GA/server/default/deploy/MyEJBjar/], DelegatingHandler@1308762861[path=G
org.snmp4j.smi, net.sf.json.regexp, package cache, org.snmp4j.security, net.sf.json, META-INF, net.sf.json.groovy, com.mycompany.util.clipgeneration] NON_EMPTY}}
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.jboss.deployment.OptAnnotationMetaDataDeployer.processJBossClientMetaData(OptAnnotationMetaDataDeployer.java:115)
at org.jboss.deployment.OptAnnotationMetaDataDeployer.processMetaData(OptAnnotationMetaDataDeployer.java:82)
at org.jboss.deployment.AnnotationMetaDataDeployer.deploy(AnnotationMetaDataDeployer.java:177)
... 32 more

What could have been done to Foo that would cause JBoss not to find it when it loads? The permissions and location are the same, and so is the owner (running on Linux RedHat 5.4)?

How can I fix the Cannot process metadata problem?

Again thank you!

Cheers,

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文