从JBoss 4.2.3升级至Wildfly 30时的部署问题排查
升级JBoss 4.2.3到WildFly 30部署报错求助
背景
近期我负责将一款原部署在JBoss 4.2.3上的Maven应用升级至WildFly 30。更新依赖库和Spring配置的过程比较顺利,但部署时出现了以下错误(日志中(my WAR name)为实际WAR包名称):
初始部署错误日志
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit."(my WAR name).war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."(my WAR name).war".STRUCTURE: WFLYSRV0153: Failed to process phase STRUCTURE of deployment "(my WAR name).war" at org.jboss.as.server@22.0.2.Final//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:178) at org.jboss.msc@1.5.2.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1617) at org.jboss.msc@1.5.2.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1580) at org.jboss.msc@1.5.2.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1438) at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0156: Failed to index deployment root for annotations at org.jboss.as.server@22.0.2.Final//org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:93) at org.jboss.as.server@22.0.2.Final//org.jboss.as.server.deployment.annotation.AnnotationIndexProcessor.deploy(AnnotationIndexProcessor.java:34) at org.jboss.as.server@22.0.2.Final//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:171) ... 8 more Caused by: java.lang.NullPointerException: Cannot invoke "org.jboss.jandex.FieldInternal.type()" because "field" is null at io.smallrye.jandex//org.jboss.jandex.Indexer.propagateTypeVariables(Indexer.java:2894) at io.smallrye.jandex//org.jboss.jandex.Indexer.complete(Indexer.java:2551) at org.jboss.as.server@22.0.2.Final//org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:89) ... 10 more
已尝试的解决方案及结果
我找到过类似问题的解决方案,尝试添加jboss-deployment-structure.xml并导入org.jboss.vfs库,但问题未解决,仅得到更简短的错误日志:
{"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"(my WAR name).war\".STRUCTURE" => "WFLYSRV0153: Failed to process phase STRUCTURE of deployment \"(my WAR name).war\" Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0156: Failed to index deployment root for annotations Caused by: java.lang.NullPointerException"}}
求助问题
- 我缺少哪些配置文件、元素或属性?
- 还需要提供哪些额外信息?
内容的提问来源于stack exchange,提问作者Patrick Siu
相关产品推荐
相关产品推荐

