在 Jboss 7.1.1 上部署 spring 启动应用程序时出错

Error while deploying spring boot app on Jboss 7.1.1

我正在尝试在 Jboss 7.1.1 上部署 Spring 启动应用程序 war,但出现错误,下面是服务器日志。同一项目在 Spring Booot 的内部 Tomcat 服务器上运行良好。

17:00:18,569 ERROR [org.jboss.web] (MSC service thread 1-5) JBAS018202: Error calling onStartup for servlet container initializer: org.springframework.web.SpringServletContainerInitializer: java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationAwareOrderComparator.sort(Ljava/util/List;)V
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:171) [spring-web-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.jboss.as.web.deployment.JBossContextConfig.lifecycleEvent(JBossContextConfig.java:148) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3845) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]

我发现你在类路径中双重加载了核心 jar。

您可能将 "org.springframework.core.annotation.AnnotationAwareOrderComparator" 装在两个罐子里。

您的项目 and/or 容器中有多个版本的 springframework-core JAR

在一次加载多个不同版本的 jar 时会很混乱。可能是某些旧版本 Spring 与新版本发生冲突。