我最近被指派将最初部署在 JBoss 4.2.3 (!) 上的应用程序升级到最新版本。自然是指Wildfly 30。
由于该应用程序是一个 Maven 项目,我在更新库和 Spring 定义时没有遇到太多太多困难。
现在遇到这个错误:(实际上“(我的战争名称)”显然是一些理性的名称)
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 [email protected]//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:178)
at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1617)
at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1580)
at [email protected]//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1438)
at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at [email protected]//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 [email protected]//org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:93)
at [email protected]//org.jboss.as.server.deployment.annotation.AnnotationIndexProcessor.deploy(AnnotationIndexProcessor.java:34)
at [email protected]//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 [email protected]//org.jboss.as.server.deployment.annotation.ResourceRootIndexer.indexResourceRoot(ResourceRootIndexer.java:89)
... 10 more
我认为自己很幸运看到有人问类似的问题(问题77646795),但不太幸运的是,在遵循给定答案后我的问题没有得到解决(即添加“jboss-deployment-struct.xml”并导入“ org.jboss.vfs”库)。
我尝试在 Web 应用程序的“src/main/webapp/WEB-INF/”文件夹下添加“jboss-deployment-struct.xml”,并在该 XML 和“ pom.xml”文件。然而,它只显示了一个较短的错误:
{"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"}}
有什么想法吗?具体来说,
提前致谢。
最终我通过降级 ojdbc11 参考度过了这个阶段。
最近的 WildFly 30 问题暗示了这一点(WildFly30,SpringBoot 3:无法调用“org.jboss.jandex.FieldInternal.type()”,因为“field”为空”)
显然其最新版本(23.3.0.23.09)存在一些 jandex 相关问题(如 on keycloak GitHub 所示)。
现在我遇到了一些其他与 Spring 相关的错误,但似乎他们已在其他地方被问过,所以我想我可以关闭这个问题。感谢您的帮助。