我一直在使用 SpringBoot 开发一个 webapp - 在本地主机上运行它工作正常,使用 jar 和 war 从终端运行它:
mvn install && java -jar target/Eeeeek-0.0.1-SNAPSHOT.jar
和
java -jar target/Eeeeek-1.3.2.BUILD-SNAPSHOT.war
两者都工作正常,我现在只打包为 war 文件。
该站点可见于 http://localhost:8080
我现在正尝试将它部署到由 digitalOcean 托管的我的 tomcat 管理器。
访问 droplet 的 ip http://46.101.2.91:8080
显示了很棒的 tomcat 管理器,然后我使用该管理器进行部署,但在尝试访问它时遇到错误。
理想情况下,我希望该应用能够访问 ip 地址的登录页面。感谢您提供任何帮助,谢谢。
当我点击管理器中的链接时,url 是 http://46.101.2.91:8080/Eeeeeek%2D1%2E3%2E2%2EBUILD%2DSNAPSHOT/
看起来不正确.. .
编辑:根据给出的答案,我已经从 webapps 中删除了 .war 和过滤器,运行了一个 mvn clean 包。然后使用管理器上传新的 Shiny war 。在上传过程中,页面因 URL http://46.101.2.91/manager/html/upload?org.apache.catalina.filters.CSRF_NONCE=846E819F21EFBBE715AFBFA39F349E34
回到主界面,发现app已经上传了。 检查 webapps 目录也得到确认,但同样的错误仍然存在。
最佳答案
你的主类是否扩展了好类?这是我的问题。这里有一个例子:
@SpringBootApplication
public class DeployTestApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DeployTestApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DeployTestApplication.class, args);
}
}
我还必须将它添加到 Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
关于java - 将 Spring Boot war 文件部署到 Tomcat 结果为 404,本地主机工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410208/