Intellij,Spring开发工具远程,Docker,错误意外404响应上传类文件

问题描述 投票:6回答:3

我试图使用Spring Boot Dev工具(Spring Remote),并自动将重新编译的文件上传到我的docker容器。

我一直收到Unexpected 404 response uploading class files

这是我的docker文件:

FROM java:8
WORKDIR /first
ADD ./build/libs/first.jar /first/first.jar
EXPOSE 8080
RUN bash -c 'touch /first/first.jar'
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-jar", "first.jar"]

这是我的配置和配置enter image description here

这是我收到的错误:

enter image description here

spring docker intellij-idea spring-boot spring-tool-suite
3个回答
1
投票

从Spring Boot 1.5.0开始,devtools默认值被更改为从fat jar中排除devtools。

如果要包含它们,则必须将excludeDevtools标志设置为false。

但是,devtools文档没有解释如何执行此操作。必要的文档实际上是在spring-boot-gradle-plugin文档中。

为此,您可以将这段代码放在build.gradle文件中:

bootRepackage {
    excludeDevtools = false
}

不幸的是,这起初是错误的,并且从Spring Boot 1.5.0开始没有任何影响。解决方法是改为:

springBoot {
    excludeDevtools = false
}

但是,我已经验证了bootRepackage方法适用于Spring Boot 1.5.8。


0
投票

我使用docker-compose编写我的应用程序(Web服务+ redis服务器+ mongo服务器)时遇到了与您相同的问题。

正如Spring开发人员工具文档指出"Developer tools are automatically disabled when running a fully packaged application. If your application is launched using java -jar or if it’s started using a special classloader, then it is considered a “production application”."

我想当我们在Docker容器中运行Spring Web Application时,开发人员工具被禁用,然后我们无法远程重启它。

目前,我正在主机上运行我的Web应用程序,并在容器内设置redis服务器,mongo服务器,这样当代码在开发过程中发生变化时,我可以快速重启Web应用程序。


0
投票

在我的情况下,我不得不将应用程序上下文放在IDE RemoteSpringApplication配置的参数上。

例如,我的应用程序根上下文是/美德所以我必须像这样配置它:Example

© www.soinside.com 2019 - 2024. All rights reserved.