【发布时间】:2018-12-15 11:41:47
【问题描述】:
晚上好,
我想监控我的 web 应用程序并了解 javamelody 的易用性。从文档来看,应该很容易将 javamelody 和 jrobin 复制到 webapp 的 WEB-INF/lib 中并重新启动 tomcat。
但是当我在我的 WEB-INF/lib 中使用这两个 jar 启动 tomcat 时出现 WebBeansDeploymentException:javamelody-core-1.73.1.jar, jrobin-1.5.9.jar
我正在使用 openJPA,我的 beans.xml 文件是空的,但确实存在。
我的配置:
Apache Tomcat: 8.5
Java: 1.8
javaee-api: 7.0
javamelody-core: 1.71.3
jrobin: 1.5.9
由于我在 stackoverflow 或 google 上没有找到太多关于此问题的信息,我将感谢任何提示或链接以供进一步阅读!
提前致谢!
完整的堆栈跟踪:
2018 年 7 月 6 日晚上 10:45:27 org.apache.openejb.cdi.OpenEJBLifecycle startApplication SEVERE:CDI Beans 模块部署失败 org.apache.webbeans.exception.WebBeansDeploymentException:WebBeans 中定义的配置 jar:file:/home/xxxxxxx/Projects/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/WEB-INF/lib/javamelody-core-1.73.1.jar!/ META-INF/beans.xml 确实失败了。原因是:拦截器类: net.bull.javamelody.MonitoringAsynchronousCdiInterceptor 必须有 至少有一个 @InterceptorBinding 在 org.apache.webbeans.config.BeansDeployer.configureInterceptors(BeansDeployer.java:1464) 在 org.apache.webbeans.config.BeansDeployer.deployFromXML(BeansDeployer.java:1338) 在 org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:256) 在 org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:196) 在 org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:189) 在 org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) 在 org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:913) 在 org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:717) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1298) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1124) 在 org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
2018 年 7 月 6 日晚上 10:45:27 org.apache.tomee.catalina.TomcatWebAppBuilder startInternal SEVERE:无法在战争中部署折叠的耳朵 StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myproject] javax.enterprise.inject.spi.DeploymentException:无法启动 owb 上下文在 org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:191) 在 org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) 在 org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:913) 在 org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:717) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1298) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1124) 在 org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起: org.apache.openejb.OpenEJBRuntimeException: org.apache.webbeans.exception.WebBeansDeploymentException:WebBeans 中定义的配置 jar:file:/home/xxxxxxx/Projects/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/WEB-INF/lib/javamelody-core-1.73.1.jar!/ META-INF/beans.xml 确实失败了。原因是:拦截器类: net.bull.javamelody.MonitoringAsynchronousCdiInterceptor 必须有 至少有一个 @InterceptorBinding 在 org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:200) 在 org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:189) ... 15 更多原因: org.apache.webbeans.exception.WebBeansDeploymentException:WebBeans 中定义的配置 jar:file:/home/xxxxxxx/Projects/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/WEB-INF/lib/javamelody-core-1.73.1.jar!/ META-INF/beans.xml 确实失败了。原因是:拦截器类: net.bull.javamelody.MonitoringAsynchronousCdiInterceptor 必须有 至少有一个 @InterceptorBinding 在 org.apache.webbeans.config.BeansDeployer.configureInterceptors(BeansDeployer.java:1464) 在 org.apache.webbeans.config.BeansDeployer.deployFromXML(BeansDeployer.java:1338) 在 org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:256) 在 org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:196) ... 16 更多
2018 年 7 月 6 日晚上 10:45:27 sun.reflect.NativeMethodAccessorImpl 调用 严重:ContainerBase.removeChild:销毁: org.apache.catalina.LifecycleException:无效的生命周期 已尝试对组件进行转换 ([before_destroy]) [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myproject]] 处于 [STARTING_PREP] 状态 org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:402) 在 org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:292) 在 org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:826) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1627) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1607) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1307) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1124) 在 org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
2018 年 7 月 6 日晚上 10:45:27 sun.reflect.NativeMethodAccessorImpl 调用 严重:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myproject]] 在 java.util.concurrent.FutureTask.report(FutureTask.java:122) 在 java.util.concurrent.FutureTask.get(FutureTask.java:192) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myproject]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ... 6 更多原因: org.apache.tomee.catalina.TomEERuntimeException: javax.enterprise.inject.spi.DeploymentException:无法启动 owb 上下文在 org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1310) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1124) 在 org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5087) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 更多原因: javax.enterprise.inject.spi.DeploymentException:无法启动 owb 上下文在 org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:191) 在 org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41) 在 org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:913) 在 org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:717) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1298) ... 11 更多原因:org.apache.openejb.OpenEJBRuntimeException: org.apache.webbeans.exception.WebBeansDeploymentException:WebBeans 中定义的配置 jar:file:/home/xxxxxxx/Projects/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/WEB-INF/lib/javamelody-core-1.73.1.jar!/ META-INF/beans.xml 确实失败了。原因是:拦截器类: net.bull.javamelody.MonitoringAsynchronousCdiInterceptor 必须有 至少有一个 @InterceptorBinding 在 org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:200) 在 org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:189) ... 15 更多原因: org.apache.webbeans.exception.WebBeansDeploymentException:WebBeans 中定义的配置 jar:file:/home/xxxxxxx/Projects/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/WEB-INF/lib/javamelody-core-1.73.1.jar!/ META-INF/beans.xml 确实失败了。原因是:拦截器类: net.bull.javamelody.MonitoringAsynchronousCdiInterceptor 必须有 至少有一个 @InterceptorBinding 在 org.apache.webbeans.config.BeansDeployer.configureInterceptors(BeansDeployer.java:1464) 在 org.apache.webbeans.config.BeansDeployer.deployFromXML(BeansDeployer.java:1338) 在 org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:256) 在 org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:196) ... 16 更多
2018 年 7 月 6 日晚上 10:45:27 sun.reflect.NativeMethodAccessorImpl 调用 严重:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 在 java.util.concurrent.FutureTask.report(FutureTask.java:122) 在 java.util.concurrent.FutureTask.get(FutureTask.java:192) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:655) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495) 引起 作者:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745) 引起: org.apache.catalina.LifecycleException:子容器失败 在开始时 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 更多
2018 年 7 月 6 日晚上 10:45:27 sun.reflect.NativeMethodAccessorImpl 调用 严重:所需的服务器组件无法启动,因此 Tomcat 是 无法启动。 org.apache.catalina.LifecycleException: 失败 启动组件 [StandardServer[8005]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:655) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495) 引起 作者:org.apache.catalina.LifecycleException:无法启动组件 [标准服务 [Catalina]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 更多原因:org.apache.catalina.LifecycleException:失败 启动组件 [StandardEngine[Catalina]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 9 更多原因:org.apache.catalina.LifecycleException: A child 容器在启动期间失败 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 11 更多
【问题讨论】:
标签: java apache tomcat8 health-monitoring java-melody