当前位置: 首页 > 知识库问答 >
问题:

Maven WebClient依赖项错误(在Docker容器中)

杨安歌
2023-03-14

当我试图在Docker容器内使用Java Spring中的WebClient连接到REST服务时,我遇到了一个错误。我在想有没有人能告诉我问题出在哪里?

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-webflux -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>2.4.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.projectreactor.netty/reactor-netty -->
    <dependency>
        <groupId>io.projectreactor.netty</groupId>
        <artifactId>reactor-netty</artifactId>
        <version>1.0.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.projectreactor/reactor-core -->
    <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-core</artifactId>
        <version>3.4.5</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.9.RELEASE</version>
    </dependency>
    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

DockerFile:

FROM tomcat:8-jre8
    RUN ["rm", "-rf", "/usr/local/tomcat/webapps/ROOT"] 
    COPY mvctest.war /usr/local/tomcat/webapps/ROOT.war
    CMD ["catalina.sh", "run"]

共有1个答案

常宸
2023-03-14

我不认为这和你在Docker运行的事实有什么关系。原因可能是spring版本的冲突。在您提供的pom中,spring boot2.x与spring5.xJAR一起工作,但您带来了Spring-WebWebMVC4.3.9.release

通常您应该完全省略jar版本,而spring boot将添加所有相关的可传递依赖项。

另一个可能有问题的地方是,您试图同时使用webflux和WebMVC。它可能在Spring靴,但首先考虑它是否真的是你需要的。

要查看确切的版本-删除所有spring相关的依赖项并运行mvn dependency:tree-您将看到树将显示哪些spring版本。

 类似资料:
  • -->实现'com.firebaseui:firebase-ui-database:1.1.1' 当我添加firebase Ui数据库依赖项时,Gradle显示错误

  • 我在尝试使用“create”创建WebClient实例的线路上收到一个NoClassDefFoundError。尝试了builder(),但仍然是一样的。 请告诉我添加的依赖项有什么问题,以及如何解决这个问题。 我添加的依赖项是 StackTrace:

  • 我正在尝试使用Firebase创建一个实时数据库。我遵循了原则,但显示出错误。 我的build.gradle应用如下: 还有我的身材。格拉德尔项目: 在控制台中显示错误: > 无法解决配置: app:_debugApkCopy的所有依赖项。无法解决com.firebase: Firebase-client-android: 2.5.2.必需的:project: app:未指定无法解决com.fir

  • 我试图使用来自Java的Apache Beam作为某种数据管道。我写了一个简单的类,从谷歌Pubsub和下沉到谷歌Bigquery,但我不能让它为我的生活构建。我使用Maven构建并添加了我能找到的所有Beam包,但我仍然得到“未找到类文件”的错误。 具体来说: 有人知道我需要添加哪些包来解决这些问题吗?不幸的是,谷歌没有提供帮助。 我的POM文件是基于Apache为Wordcount提供的示例P

  • 我正在尝试添加以下依赖项:

  • 我有一个docker-compose文件,如下所示,它有两个容器。一个是MySQL DB,另一个是读/写DB的Python爬虫应用程序。当我执行时,我看到: 已生成DB容器 然后生成应用程序容器 然后运行应用程序容器上的CMD(例如启动我的爬网程序) 然后根据docker-compose文件中的环境变量在DB容器中初始化我的数据库。 我的问题是为什么我的爬虫脚本在我的数据库在DB容器中创建之前运行