抱歉,在不解释整个情况的情况下,我想不出更具描述性的标题。
我正在使用 IIS7 和 Tomcat7。
我使用 GWT 创建了一个 Web 应用程序,将其打包成 war 文件并将其部署在 Tomcat 上。
输入我的网站网址,例如“www.myapp.com”,我会看到 Tomcat 默认页面。我怀疑这是因为那是 %TOMCAT_HOME%/webapps/ROOT 目录中的内容。我可以通过“www.myapp.com/myapp”访问我的网络应用程序,并且我期望的所有功能都在那里。
如何配置 Tomcat,以便可以通过“www.myapp.com”而不是“www.myapp.com/myapp”访问我的 Web 应用程序?
我尝试通过为我的 web 应用程序添加新的“主机”标签来在 %TOMCAT_HOME%/conf 中配置 server.xml:
<Host name="myapp.com" debug="0" appBase="webapps/myapp" unpackWARs="true">
<Alias>www.myapp.com</Alias>
<Context path="" docBase="." debug="0" reloadable="true"/>
</Host>
从上面添加主机标签,输入“www.myapp.com”现在可以直接进入我的网络应用程序。问题是,当我在应用程序中执行某些调用 servlet 的操作(我正在使用 GWT RPC)时,我收到错误:
com.google.gwt.user.client.rpc.StatusCodeException: 404
Server Error 404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
我不知道为什么会收到此错误,之前在没有添加“主机”标签的情况下输入“www.myapp.com/myapp”时效果很好。
我是 Tomcat 新手,不知道如何解决这个问题。 任何帮助将不胜感激。 谢谢
编辑:
a) server.xml 中的主机部分(我的默认主机为 www.myapp.com):
<Host name="localhost" appBase="C:/Tomcat 7.0/webapps" unpackWARs="true" autoDeploy="true"></Host>
<Host name="www.myapp.com" appBase="C:/Tomcat 7.0/myapp" unpackWARs="true" autoDeploy="true"> </Host>
b)workers.properties(我尝试将此处的主机更改为www.myapp.com,但无济于事):
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
c) uriworkermap.properties:
/*=worker1
最佳答案
您有两个选择。
将您的 WAR 重命名为 ROOT.war。
将 WAR 移出 Tomcat 的 appBase,然后添加一个包含以下内容的新文件 $CATALINA_BASE/Catalina/localhost/ROOT.xml:
这假设您使用引擎和主机的默认名称。如果没有,请相应调整路径。它是 $CATALINA_BASE/
现在您正在使用选项 1 的多个主机,您需要执行以下操作,因为 appBase != docBase。如果尝试对它们使用相同的值,就会发生各种不好的事情。
有多种方法可以从您现有的解决方案中获得可行的解决方案。我建议如下: 1. 创建一个名为 C:/Tomcat 7/webapps-myapp/ROOT 的目录 2.将C:/Tomcat 7/myapp的内容复制到这个新目录 3.删除C:/Tomcat 7/myapp 4.将MyApp主机的appBase更改为“webapps-myapp”(或完整路径)
这会将 C:/Tomcat 7/myapp 中的应用程序部署为 myapp 虚拟主机中的 ROOT(默认)应用程序。这假设您已将 myapp 应用程序部署到 C:/Tomcat 7/myapp
关于tomcat - 如何让 Apache Tomcat 从 'www.myapp.com' 而不是 'www.myapp.com/myapp' 为我的网页提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373799/