经过一番努力之后,我在(远程)Tomcat 5.5服务器(Turnkey Linux附带)上部署了一个Web应用程序。它是一个带有Java后端的GoogleWebToolkit Web应用程序。
观察日志一切顺利。 / manager应用程序还在我的新应用程序上显示“running = true”。
但问题是,转到/ myApp网址会给出404.到目前为止我做了什么,但没有成功:
有关如何解决此问题的任何提示,找出问题所在,或者可能导致此问题的原因? 会有冲突吗?在$ 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>
答案 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上进行监听。