0

我希望我的应用程序在以下 URL 下运行:

www.myDomainName.com/welcome

代替 :

www.myDomainName.com/myAppName/welcome

我应该如何配置这个?

我确实找到了一种方法来通过在context.xml(在项目目录中)将path属性指定为path="/". 但不确定这是最好的方法吗?!

另一个问题是,我将如何访问 Tomcat 服务器的根页面,而我之前可以访问 Tomcat 服务器的根页面localhost:8080


处理在 Tomcat 7 上运行的 JSF(Myfaces 2.2 beta)项目

4

2 回答 2

2

我应该如何配置这个?

取决于使用的服务器。这在 WAR 内部是无法控制的。只需查阅特定于服务器的文档如何配置上下文路径。

请注意,这意味着您永远不应该在 webapp 的代码和 Java 源代码中硬编码上下文路径,始终依赖于和/或Facelets 源代码中的方法,getContextPath()这些组件会自动添加上下文路径,或以普通的, 等元素打印它。HttpServletRequestServletContext<h:outputStylesheet><h:outputScript><h:graphicImage><h:link><h:button>#{request.contextPath}<a><link>


我确实找到了一种方法来实现这一点,方法是在 context.xml(在项目目录中)将路径属性指定为 path="/"。但不确定这是最好的方法吗?!

这确实是专门针对 Tomcat 的正确方法。

另一种方法是将 WAR 文件重命名为(并删除/重命名代表 Tomcat 默认主页ROOT.war的旧文件夹)。apache-tomcat/webapps/ROOT但这通常有点笨拙。通常,您希望有一个更具体的 WAR 文件名,通常包括构建版本,并将工作留给context.xml.

另一种选择是在 Tomcat 实例前面放置一个HTTPD实例。这也是大多数生产服务器所做的。这还有一个额外的优势,您可以配置 HTTPD 以显示特殊的“抱歉,此网站正在维护中,稍后再回来!” 页面作为 HTTP 503 错误页面,当您关闭/重新启动/重新部署 Tomcat 时会显示该页面。


另一个问题是我将如何访问 Tomcat 服务器的根页面,我以前可以在 localhost:8080 访问它?

只需将apache-tomcat/webapps/ROOT文件夹重命名为应代表新上下文路径的所需名称。例如apache-tomcat/webapps/tomcathome,这应该使其在http://localhost:8080/tomcathome.

于 2013-11-13T10:43:53.623 回答
1

我通常设置一个 apache2 网络服务器和一个 tomcat 服务器。然后我在 apache 端进行所有 vhost 设置,并通过 mod_proxy 将特定域或路径的流量路由到 Tomcat 服务器的目标路径。这样您就可以访问您的 host.tld:8080 并根据需要设置您的域。

所以基本上对 www.host.tld/welcome 的调用会导致 Apache 在内部将请求路由到 host.tld: 8080/myApp/welcome。

HTH 很抱歉我必须使用我的手机的简短解释。

于 2013-11-13T07:34:59.297 回答