我的主管要求我将一个旧的Maven项目转换为一个Spring Boot项目,以便我们能够通过RESTful交互访问该项目的后端(在该项目的后端只能通过控制台界面访问之前)。
因此,首先,我在单独的项目包中添加了一个简单的Spring Boot应用程序。之后,我开始通过Spring Boot所需的依赖项扩展项目的pom.xml,并调整了整个项目设置。现在,我尝试运行旧项目的后端,事实证明它正在运行。但是,简单的Spring Boot应用程序没有。
我将问题缩小为pom.xml的“旧”部分中的冲突依赖项:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.6.1</version>
</dependency>
当我将此依赖项保留在pom.xml中时,旧的后端可以工作,但是Spring Boot应用程序失败并出现以下错误:
WARN: Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
如果我注释掉这个依赖,Spring Application可以正常工作,但是旧的后端失败。我使用2.0.4.RELEASE
的{{1}}版本。我认为日志记录包的旧后端版本与spring-boot-admin-starter-server
中包含的版本不同。但是,我在项目中某种程度上需要两个版本。
不可能的事情:
我已经尝试过的方法,但是在以下方面却没有成功
: spring-boot-admin-starter-server
有人建议如何解决此问题吗?我会很感激。我不习惯解决这种依赖问题。如果我缺少明显的东西,请原谅。
-lema
编辑pom.xml(不幸的是,我不得不省去了大部分):
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
编辑:我刚刚发现,如果您在冲突的依赖项中删除了version元素,则Spring Boot Application可以运行,但是不幸的是,后端然后失败了。
答案 0 :(得分:0)
所以我找到了一个解决方案,但这可能不是最好的方法:
我只是将<spring-boot-dependencies.version>2.0.4</spring-boot-dependencies.version>
替换为与冲突日志依赖项兼容的旧版本,即版本1.4.7.RELEASE
。
这是Spring Boot应用程序和后端同时工作的最新版本(通过反复试验发现该错误)。
无论如何,非常感谢您的帮助。
欢呼