Apache TomEE + - 部署战争失败 - 从tomcat 1.6迁移

时间:2015-02-03 05:59:30

标签: java tomcat openejb tomee

我们使用的是tomcat 1.6,新的要求是我们需要使用tomEE +。当我们尝试迁移到TomEE +时,我们收到错误说"组件"尝试了无效的生命周期转换([before_destroy])。

  

org.apache.catalina.LifecycleException:无效的生命周期   尝试过渡([before_destroy])组件   [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext [/ freshgate]]   在州[STARTING_PREP]处   org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:409)     在   org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:299)     在   org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1041)     在   org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1524)     在   org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1505)     在   org.apache.tomee.catalina.TomcatWebAppBuilder.undeployWebApps(TomcatWebAppBuilder.java:747)     在   org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:1668)     在   org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:892)     在   org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623)     在   org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248)     在   org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087)     在   org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)     在   org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)     在   org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)     在   org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)     在   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)     在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)     在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)     在   org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)     在   org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1880)     在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)     在java.util.concurrent.FutureTask.run(FutureTask.java:166)at   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:603)     在java.lang.Thread.run(Thread.java:722)

但是这个war文件已成功部署在tomcat 1.6中,不知道" org.apache.openejb.assembler.deployer"的期望值。有些人可以解释一下" Deployer"预计。

在我们解决这个问题一个多星期之后,我们继续前进将会非常有帮助。

提前致谢

1 个答案:

答案 0 :(得分:2)

你已经解决了这个问题,所以不需要接受这个作为正确的答案,但我想我会为其他人添加快速笔记。

有几种方法可以调查这些问题。首先,检查整个服务器日志,而不仅仅是堆栈跟踪。 TomEE通常会在它抛出任何异常之前告诉您它正在初始化的组件,因此可能会看到这是JaxRS。

其次,出现此警告是因为您部署了JAXRS或Jersey组件作为WAR中的依赖项。虽然这在Tomcat上是必要的,但它在TomEE中并不是必需的,因为它是一个完整的堆栈容器。

第三,请务必阅读文档:此特定方案列于此处:http://tomee.apache.org/tip-jersey-client.html

最后,如果您仍然停滞不前,请打开详细日志记录或类加载,以查看服务器在失败之前正在执行的操作。

干杯 -Jonathan