3

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

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

但问题是,转到 /myApp url 会得到 404。到目前为止,我所做的一切都没有成功:

  • 确保它确实使用 Eclipse 在本地运行,在那里工作正常
  • 检查部署服务器上的日志,它成功加载了 Spring 和其他一些库。事实上,它显示的消息与我在 Eclipse 中以托管模式运行时相同
  • /manager、/host-manager、/admin 应用程序运行良好。
  • 在 /manager 上重新加载应用程序也会显示“OK”
  • 我指定了一个欢迎文件,一个实际存在的文件,直接点击它也会给出 404
  • 我使用默认主机 ('localhost'),就像 /manager、/host-manager 和 /admin 应用程序一样
  • 在互联网上进行了很多搜索,但无济于事。
  • 尝试了不同的 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>
4

2 回答 2

2

So you have an Apache instance sitting in front of Tomcat. Some/all requests to Apache are forwarded to Tomcat AJP port 8009. Assuming this Apache-Tomcat bridge is working ok, and thus focusing only on your deployed application, you probably need to add some JKMount directives into Apache's httpd.conf file, to ensure that requests to /myApp url are indeed forwarded to Tomcat. Otherwise, they are served by Apache, which means that you get a 404 error when those resources are not found.

于 2011-03-30T06:47:58.083 回答
2

The HTTPD/conf.d folder should have various .conf files which contains entries regarding the web applications configured. Either you can create a new .conf file or add the ProxyPass entry to an existing conf file. Adding a ProxyPass entry can route the request received to the tomcat. e.g. ProxyPass /myApp/ ajp://localhost:8009/myApp/. Tomcat should be listening on AJP Connector port 8009 for above example.

于 2012-03-20T14:59:58.237 回答