【发布时间】:2018-12-23 02:43:16
【问题描述】:
在一些代码更改后,我观察到来自 payara 服务器的一个非常奇怪的异常。它的问题,我无法确定它在抱怨什么。基本上我都不知道哪里出了问题。
非常感谢任何可能出错的想法。
启动期间日志中的异常:
{"Timestamp":"2018-07-14T11:31:34.430+0000","Level":"WARNING","Version":"Payara 4.1","LoggerName":"javax.enterprise.system.core", "ThreadID":"58","ThreadName":"AutoDeployer","TimeMillis":"1531567894430","LevelValue":"900","MessageID":"NCLS-CORE-00069","LogMessage":{" Exception":"调度事件时出现异常","StackTrace":"org.glassfish.api.invocation.InvocationException 在 org.glassfish.api.invocation.InvocationManagerImpl.postInvoke(InvocationManagerImpl.java:219) 在 org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:310) 在 org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) 在 org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:333) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:505) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:227) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:536) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:544) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:540) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:360) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:539) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:570) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:562) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:360) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:561) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1469) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:111) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1851) 在 org.glassfish .deployment.autodeploy.AutoOperation.run(AutoOperation.java:164) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:597) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:484) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:412) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:403) 在 org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:233) 在 java.util.TimerThread.mainLoop(Timer.java:555) 在 java.util.TimerThread.run(Timer.java:505) "}}后跟 -- 两次:
{"时间戳":"2018-07-14T11:31:34.998+0000","级别":"SEVERE","版本":"Payara 4.1","LoggerName":"javax.enterprise.web.core", "ThreadID":"58","ThreadName":"AutoDeployer","TimeMillis":"1531567894998","LevelValue":"1000","MessageID":"AS-WEB-CORE-00108","LogMessage": {“异常”:“ContainerBase.addChild:开始:”,“StackTrace”:“org.apache.catalina.LifecycleException:java.lang.IllegalArgumentException:javax.servlet.ServletException:com.sun.enterprise.container.common.spi .util.InjectionException:为类创建托管对象时出错:类 org.jboss.weld.servlet.WeldListener 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:5523) 在 com.sun.enterprise.web.WebModule.start(WebModule.java:594) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:956) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:939) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:684) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2105) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1750) 在 com.sun.enterprise.web.WebApplication.start(WebApplication.java:107) 在 org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 在 org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:294) 在 org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:357) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:509) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:227) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:536) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:544) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:540) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:360) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2.e 执行(CommandRunnerImpl.java:539) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:570) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:562) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:360) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:561) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1469) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:111) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1851) 在 org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:164) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:597) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:484) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:412) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:403) 在 org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:233) 在 java.util.TimerThread.mainLoop(Timer.java:555) 在 java.util.TimerThread.run(Timer.java:505) 引起:java.lang.IllegalArgumentException:javax.servlet.ServletException:com.sun.enterprise.container.common.spi.util.InjectionException:为类创建托管对象时出错:类org.jboss.weld.servlet.WeldListener 在 org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2884) 在 org.apache.catalina.core.StandardContext.addApplicationListener(StandardContext.java:2080) 在 com.sun.enterprise.web.TomcatDeploymentConfig.configureApplicationListener(TomcatDeploymentConfig.java:236) 在 com.sun.enterprise.web.TomcatDeploymentConfig.configureWebModule(TomcatDeploymentConfig.java:95) 在 com.sun.enterprise.web.WebModuleContextConfig.start(WebModuleContextConfig.java:239) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:336) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:163) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:5520) ... 34 更多 原因:javax.servlet.ServletException:com.sun.enterprise.container.common.spi.util.InjectionException:为类创建托管对象时出错:类 org.jboss.weld.servlet.WeldListener 在 org.apache.catalina.core.StandardContext.createListener(StandardContext.java:3005) 在 org.apache.catalina.core.StandardContext.loadListener(StandardContext.java:5043) 在 com.sun.enterprise.web.WebModule.loadListener(WebModule.java:1732) 在 org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2882) ... 41 更多 原因:com.sun.enterprise.container.common.spi.util.InjectionException:为类创建托管对象时出错:类 org.jboss.weld.servlet.WeldListener 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:353) 在 com.sun.enterprise.web.WebContainer.createListenerInstance(WebContainer.java:808) 在 com.sun.enterprise.web.WebModule.createListenerInstance(WebModule.java:2102) 在 org.apache.catalina.core.StandardContext.createListener(StandardContext.java:3003) ... 44 更多 引起:java.lang.NullPointerException 在 org.glassfish.weld.services.JCDIServiceImpl.createManagedObject(JCDIServiceImpl.java:358) 在 org.glassfish.weld.services.JCDIServiceImpl.createManagedObject(JCDIServiceImpl.java:283) 在 com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:476) 在 com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:429) 在 com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:337) ... 47 更多 "}}此警告会稍后出现几次
{"Timestamp":"2018-07-14T11:31:35.079+0000","Level":"WARNING","Version":"Payara 4.1","LoggerName":"javax.enterprise.web","ThreadID ":"58","ThreadName":"AutoDeployer","TimeMillis":"1531567895079","LevelValue":"900","LogMessage":{"Exception":"java.lang.IllegalStateException: ContainerBase.addChild:开始:org.apache.catalina.LifecycleException:java.lang.IllegalArgumentException:javax.servlet.ServletException:com.sun.enterprise.container.common.spi.util.InjectionException:为类创建托管对象时出错:类org.jboss。 weld.servlet.WeldListener","StackTrace":"java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise。 container.common.spi.util.InjectionException:为类创建托管对象时出错:类 org.jboss.weld.servlet.WeldListener 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:960) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:939) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:684) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2105) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1750) 在 com.sun.enterprise.web.WebApplication.start(WebApplication.java:107) 在 org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 在 org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:294) 在 org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:357) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:509) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:227) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:536) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:544) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:540) 在 j ava.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:360) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:539) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:570) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:562) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:360) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:561) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1469) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:111) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1851) 在 org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:164) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:597) 在 org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:484) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:412) 在 org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:403) 在 org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:233) 在 java.util.TimerThread.mainLoop(Timer.java:555) 在 java.util.TimerThread.run(Timer.java:505) "}}这些异常现在重复多次,然后是容器尚未启动异常,最后是旧的“Autodeploy failed”
在本地部署良好,仅在服务器(OpenShift Linux Pod)上失败。 这是我在本地成功部署(应用程序运行)时收到的唯一警告:
警告:无法加载服务类 fish.payara.appserver.roles.api.extension.RolesCDIExtension 警告:无法加载服务类 fish.payara.appserver.roles.api.extension.RolesCDIExtension 警告:无法加载服务类 fish.payara.appserver.roles.api.extension.RolesCDIExtension 信息:WELD-000411:观察者方法 [BackedAnnotatedMethod] 私有 org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType) 接收所有带注释类型的事件。考虑使用 @WithAnnotations 或带边界的泛型类型来限制事件。 信息:WELD-000411:观察者方法 [BackedAnnotatedMethod] 私有 org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType) 接收所有带注释类型的事件。考虑使用 @WithAnnotations 或带边界的泛型类型来限制事件。 信息:WELD-000411:观察者方法 [BackedAnnotatedMethod] 私有 org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType) 接收所有带注释类型的事件。考虑使用 @WithAnnotations 或带边界的泛型类型来限制事件。 警告:已检测到以下警告:警告:来自私有 javax.enterprise.inject.spi.Bean org.glassfish.soteria.cdi.LoginToContinueInterceptor.interceptedBean 的 javax.enterprise.inject.spi.Bean 类型的参数 interceptedBean 无法解析为一种具体的类型。 警告:已检测到以下警告:警告:来自私有 javax.enterprise.inject.spi.Bean org.glassfish.soteria.cdi.RememberMeInterceptor.interceptedBean 的 javax.enterprise.inject.spi.Bean 类型的参数 interceptedBean 无法解析为一种具体的类型。 警告:类类 [Ljava.lang.String;有空包 信息:为上下文“初始化 Soteria 1.1-b01” 信息:Mojarra 2.2.14(-SNAPSHOT 20170628-1326 无法获取 svn 信息)für Kontext '' wird initialisiert。 警告:WELD-000718:没有为 ID 为 XXXXXXXXX_war.war 的 bean 归档定义 EEModuleDescriptor。 ApplicationScoped 的 @Initialized 和 @Destroyed 事件可能会被触发两次。我尝试了什么:
- 恢复了任何库的任何版本更新
- 删除了所有 Startup EJB -- 最后显示上述错误
- 验证配置
提前致谢
保罗
【问题讨论】:
标签: java jakarta-ee cdi web-deployment payara