我的Tomcat上部署的每个应用程序都会在我发出的每个请求中返回status code 404
。我尝试了几个项目,helloworlds或者骷髅,每个项目的行为与其他项目相同:
我使用过的一些项目:
https://github.com/mwarman/skeleton-ws-spring-boot
https://spring.io/guides/gs/rest-service/(我可以使用mvn spring-boot:run
运行它,但它不能像部署到Tomcat那样工作)
https://github.com/shagstrom/spring-mvc-hibernate-skeleton
我正在使用最新的Tomcat8 (8.0.27)
,Oracle JDK 8
。我还尝试Tomcat7
与OpenJDK 7
。
使用的Tomcats正在 MAC 和 Debian 上运行。
我通过 mvn 和 Intellij Idea 构建应用。
Tomcats很干净,没有更改配置(除了添加manager-gui用户)。
由于我尝试了很多不同的项目,我不相信代码中存在问题。它是在Tomcat的配置中吗?我怎样才能让它发挥作用?
修改
server.xml
代码:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
答案 0 :(得分:0)
如果您成功安装了tomcat,您可能已经从浏览器http://localhost:8080/ URL看到了tomcat主页。 (否则,您需要先检查tomcat安装。)
我猜你可能已经通过在你提到的网站上方进行了操作而建造了jar。 我想知道你是否将jar应用到你的tomcat中,因为你提到了来自任何其他项目的相同结果。 你需要在你的tomcat中应用jar或war才能应用java程序。
以下是我希望它们可能对您有所帮助的链接。
包装大战:How to make war file in Eclipse
Tomcat - war文件部署:https://www.youtube.com/watch?v=9X9DA8oVodk
答案 1 :(得分:0)
tomcat的返回404响应,您必须检查以下几点:
要测试这些问题,您必须公开:
通过这种方式,您可以排除在应用程序部署期间可能遇到的陷阱