应用程序已成功部署在Tomcat上,但404错误

时间:2010-12-08 11:55:14

标签: apache tomcat mod-jk

经过一番努力之后,我在(远程)Tomcat 5.5服务器(Turnkey Linux附带)上部署了一个Web应用程序。它是一个带有Java后端的GoogleWebToolkit Web应用程序。

观察日志一切顺利。 / manager应用程序还在我的新应用程序上显示“running = true”。

但问题是,转到/ myApp网址会给出404.到目前为止我做了什么,但没有成功:

  • 确保它使用Eclipse在本地运行,在那里正常工作
  • 检查部署服务器上的日志,它成功加载了Spring和其他一些库。实际上,它显示的内容与我在Eclipse中的托管模式下运行时相同的消息
  • / manager,/ host-manager,/ admin应用程序正常运行。
  • 在/ manager上重新加载应用程序也说'确定'
  • 我指定了一个欢迎文件,其中一个实际存在,直接点击也会给出404
  • 我使用默认主机('localhost'),就像/ manager,/ host-manager和/ admin apps
  • 在互联网上做了很多搜索,但没有用。
  • 尝试了一个不同的Tomcat(v6)服务器(我的家庭ubuntu盒子,我要部署的那个是网上某处的VPS),它就可以了......重新安装VPS?

有关如何解决此问题的任何提示,找出问题所在,或者可能导致此问题的原因? 会有冲突吗?在$ CATALINA_HOME / webapps目录中运行另一个应用程序,是否可以与部署在同一目录中的myApp发生冲突?

下面是我的server.xml

<?xml version="1.0" encoding="UTF-8"?>
<Server>
  <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <GlobalNamingResources>
   <Environment
    name="simpleValue"
    type="java.lang.Integer"
    value="30"/>
   <Resource
     auth="Container"
     description="User database that can be updated and saved"
     name="UserDatabase"
     type="org.apache.catalina.UserDatabase"
     pathname="conf/tomcat-users.xml"
     factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
  </GlobalNamingResources>
  <Service
  name="Catalina">
   <Connector
    port="8009"
    redirectPort="8443"
    address="127.0.0.1"
    protocol="AJP/1.3">
   </Connector>
   <Engine
    defaultHost="localhost"
    name="Catalina">
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
     <Host
      appBase="webapps"
      name="localhost">
     </Host>
   </Engine>
 </Service>
</Server>

2 个答案:

答案 0 :(得分:2)

所以你有一个位于Tomcat前面的Apache实例。对Apache的部分/全部请求被转发到Tomcat AJP端口8009.假设这个Apache-Tomcat桥工作正常,因此只关注您部署的应用程序,您可能需要在Apache的{{1}中添加一些JKMount指令。文件,以确保对httpd.conf url的请求确实转发给Tomcat。否则,它们由Apache提供服务,这意味着当找不到这些资源时会出现404错误。

答案 1 :(得分:2)

HTTPD / conf.d文件夹应包含各种.conf文件,其中包含有关配置的Web应用程序的条目。您可以创建新的.conf文件,也可以将ProxyPass条目添加到现有的conf文件中。添加ProxyPass条目可以将收到的请求路由到tomcat。例如ProxyPass /myApp/ ajp://localhost:8009/myApp/。 对于上面的例子,Tomcat应该在AJP Connector端口8009上进行监听。