【发布时间】:2020-08-25 16:10:06
【问题描述】:
我有许多 Spring Boot Maven 项目。它们是Angular/React UI 客户端的 REST 服务的非常简单的包装器。我使用集成的 Tomcat-9 在 Eclipse 中进行开发,然后部署到 Linux 上的 WebLogic-12c [WLS]。我使用spring-boot-starter-parent version-2.2.4.RELEASE 和以下组件:
- spring-boot-starter-web
- 弹簧安全配置
- spring-security-web
项目/webapps 非常相似,并且在 WLS 中都可以正常工作,尽管我们遇到了一些类路径冲突,但能够按照 Oracle 的建议使用 WEB-INF/weblogic.xml 中的类似内容解决它们:
<wls:prefer-web-inf-classes>false</wls:prefer-web-inf-classes>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
</wls:prefer-application-packages>
然而,尽管配备了相同的 weblogic.xml,但最后一个项目不会部署到 WLS。它在Tomcat 和local WLS 中运行良好,但由于以下原因在服务器上失败:
weblogic.application.ModuleException:
Caused By: java.lang.NoSuchMethodError: org.springframework.util.MultiValueMap.addAll(Ljava/lang/Object;Ljava/util/List;)V
at org.springframework.core.io.support.SpringFactoriesLoader.loadSpringFactories(SpringFactoriesLoader.java:140)
at org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(SpringFactoriesLoader.java:119)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:429)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:421)
at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:268)
我在本地 PC 上安装了两个版本的 WLS - 14c,然后是 12c - 就像我们在 Linux 服务器上运行的一样。有问题的项目在两者上都在本地运行,没有任何问题。
这个“坏”项目与“好”项目具有完全相同的依赖关系。事实上,WEB-INF/lib 的内容是完全一样的。到目前为止,我找不到是什么让这个项目如此特别以至于 Spring 无法初始化。
所以这是我的问题。可能导致此 WLS 部署问题的原因以及解决方法。
非常感谢您的帮助。
【问题讨论】:
标签: java spring-boot maven weblogic12c