Java 已部署的春季战靴&x27;我不能在Tomcat工作

Java 已部署的春季战靴&x27;我不能在Tomcat工作,java,spring-boot,ubuntu-16.04,tomcat8,Java,Spring Boot,Ubuntu 16.04,Tomcat8,我使用Java8将我的Spring Boot应用程序部署到Tomcat8.5中,但是当我使用CURL发送一些请求时,会得到404响应。我不知道我做错了什么 我对Java并不陌生,但这是我第一次在服务器上设置环境来部署我的应用程序。我关注的博客帖子: 唯一的区别是我在Ubuntu 16.04上安装了Tomcat 8.5,但没有设置管理器界面 我的Spring Boot入口点: @springboot应用程序 公共类应用程序扩展了SpringBootServletInitializer{ 公共静态v

我使用Java8将我的Spring Boot应用程序部署到Tomcat8.5中,但是当我使用CURL发送一些请求时,会得到404响应。我不知道我做错了什么

我对Java并不陌生,但这是我第一次在服务器上设置环境来部署我的应用程序。我关注的博客帖子:

唯一的区别是我在Ubuntu 16.04上安装了Tomcat 8.5,但没有设置管理器界面

我的Spring Boot入口点:

@springboot应用程序
公共类应用程序扩展了SpringBootServletInitializer{
公共静态void main(字符串[]args){
SpringApplication.run(Application.class,args);
}
@凌驾
受保护的SpringApplicationBuilder配置(SpringApplicationBuilder){
返回生成器.sources(Application.class);
}
}
My pom.xml:

战争
org.springframework.boot
spring启动程序父级
2.0.2.1发布
some.group.id
服务器
3.6
25.0-jre
0.9.0
2.9.9
4.12
2.17.0
some.group.id.Application
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧启动安全
org.projectlombok
龙目
javax.servlet
javax.servlet-api
org.apache.commons
commons-lang3
${commons-lang.version}
番石榴
番石榴
${guava.version}
io.jsonwebtoken
jjwt
${jwt.version}
乔达时间
乔达时间
${joda time.version}
朱尼特
朱尼特
${junit.version}
测试
org.mockito
莫基托磁芯
${mockito.version}
测试
番石榴
番石榴
${guava.version}
测试
com.h2数据库
氢
1.4.199
运行时
org.springframework.boot
spring引导启动器数据jpa
2.1.4.1发布
com.google.firebase
firebase管理员
6.8.1
org.springframework.boot
弹簧启动机tomcat
假如
org.springframework.boot
springbootmaven插件
我将启动Tomcat作为一项服务:

Description=Tomcat 8 servlet container
After=network.target

[Service]
Type=forking

User=tomcatuser
Group=tomcatuser

#Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
JAVA_HOME设置在/etc/environment中,所以它被注释掉了


我将我的应用程序部署到AWS上,它可以正常工作。当我从IntelliJ本地运行它时,它也可以工作。因此,我认为这与我的Tomcat设置有关。另外,我没有任何日志文件,例如catalina.out。

@lealcelderio-answer帮助了我

错误是我请求的资源没有应用程序上下文路由的名称。我部署的war名为“app.war”,因此,我请求的URL错误:

主机地址:8080/资源uri

正确的URL是:


主机地址:8080/app/resource uri

404
表示tomcat已启动并运行,但未找到任何与您请求的url的映射。您可能正在请求
http:localhost:8080/my cool url
,但可能正在
my app
上下文路由下运行spring应用程序,因此在这种情况下,您应该请求
http:localhost:8080/my app/my cool url
。根据目前的信息很难判断。但我建议您尝试访问Tomcat提供的web管理器,看看是否可以通过它访问应用程序。“我没有任何日志文件,例如catalina.out”,然后开始修复它,这样您就可以看到任何错误消息,解释您的web应用程序可能无法启动的原因。@Lealcelderio,我犯了多大的错误。这是“我的应用”部分。为什么需要在服务器上安装tomcat?Spring Boot“Spring Boot starter web”有自己的一个(嵌入式tomcat)。您只需以“java-jar app.war”的身份运行应用程序,很高兴我的评论对您有所帮助。记住你可以,即使是。@Lealcelderio,是的,我知道。但我得到一个弹出窗口:你可以在两天内接受你自己的答案。所以我会等两天:)@öааааааіа,我有点赶时间,所以我没有研究它。但是谢谢你的提示,我也会看看的。