Geronimo 中的 Web 应用程序部署失败

Web application deployment failing in Geronimo

我有一个带有 WASCE 的 Linux VM,我想使用 Geronimo 部署一个 Web 应用程序。 当我尝试将我的应用程序部署到 Geronimo 3.0.0.3 J2EE Web 配置文件服务器时,部署失败并显示以下堆栈跟踪:

The application was not successfully started.
start of <myApp>/1.0.0-SNAPSHOT/war failed
org.apache.geronimo.kernel.config.LifecycleException: start of <myApp>/1.0.0-SNAPSHOT/war failed
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:726)
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:689)
at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start exception
at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:527)
at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:225)
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:710)
... 3 more
Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Could not load GBeanInfo class from classloader: org.eclipse.osgi.framework.internal.core.BundleContextImpl@690bf1cf className=org.apache.geronimo.openwebbeans.OpenWebBeansWebAppContext
at org.apache.geronimo.gbean.runtime.GBeanInstance.(GBeanInstance.java:250)
at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:361)
at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:452)
... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.geronimo.openwebbeans.OpenWebBeansWebAppContext
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
at org.apache.geronimo.gbean.runtime.GBeanInstance.(GBeanInstance.java:248)
... 7 more

如果我尝试使用普通 Tomcat 容器,它会成功部署并且工作正常。但是应用程序需要一些企业功能,因此需要 Geronimo。

这似乎是 Geronimo 层的一个问题,任何建议或提示将不胜感激。

提前致谢!

幸运的是,我可以摆脱这个问题。以下是步骤:

  1. 终止 WASCE 进程。
  2. 修改config.xml以下两个模块不加载:

    <module load="false" name="org.apache.geronimo.configs/openwebbeans/3.0-w20120730/car"/>
    <module load="false" name="org.apache.geronimo.configs/openwebbeans-deployer/3.0-w20120730/car"/>
    
  3. 重新启动 WASCE,一切顺利。

致谢:蒋明华