【发布时间】:2015-04-02 06:14:30
【问题描述】:
我们使用的是tomcat 1.6,一个新的要求是我们需要使用tomEE+。当我们尝试迁移到 TomEE+ 时,我们收到一条错误消息,提示“尝试了无效的生命周期转换 ([before_destroy]) 组件”。
org.apache.catalina.LifecycleException: 无效的生命周期 已尝试对组件进行转换 ([before_destroy]) [StandardEngine[Catalina].StandardHost[localhost].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) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 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”是什么意思。有人可以解释一下“部署者”的期望。
在我们解决这个问题一个多星期后,进一步推进对我们非常有帮助。
提前致谢
【问题讨论】:
-
我已经通过在 conf 中的 System.properties 中添加“openejb.api.javax.ws.rs.Path.validation=false”解决了这个问题
标签: java tomcat openejb apache-tomee