我希望我的应用程序在以下网址下运行:
www.myDomainName.com/welcome
而不是:
www.myDomainName.com/myAppName/welcome
我该如何配置呢?
我确实找到了一种方法来实现这一目标,方法是在context.xml
(在项目目录中)将path
属性指定为path="/"
。但不确定这是最好的方法吗?!
另一个问题是,我将如何访问Tomcat服务器的根页面,我之前可以在localhost:8080
访问该页面?
使用在Tomcat 7上运行的JSF(Myfaces 2.2 beta)项目
答案 0 :(得分:2)
我应该如何配置?
取决于使用的服务器。这不能从WAR内部控制。只需查阅服务器特定的文档,如何配置上下文路径。
请注意,这意味着您应该从不硬编码webapp代码中的上下文路径,并且Java源代码始终依赖于HttpServletRequest
的getContextPath()
方法和/或ServletContext
以及<h:outputStylesheet>
,<h:outputScript>
,<h:graphicImage>
,<h:link>
,<h:button>
等自动添加上下文路径的组件的Facelets源代码,或#{request.contextPath}
以普通<a>
,<link>
等元素打印。
我确实找到了一种方法来实现这一点,方法是在context.xml(在项目目录中)中指定路径属性为path =“/”。但不确定这是最好的方法吗?!
这确实是专门针对Tomcat的正确方法。
另一种方法是将WAR文件重命名为ROOT.war
(并删除/重命名代表Tomcat默认主页的旧apache-tomcat/webapps/ROOT
文件夹)。但这通常有些笨拙。通常,您希望拥有更具体的WAR文件名,通常包括构建版本并将作业留给context.xml
。
另一种方法是通过HTTPD实例来引导Tomcat实例。这也是大多数生产服务器所做的事情。除此之外,您还可以配置HTTPD以显示特殊的“抱歉,此网站处于维护状态,稍后再回来!”页面为HTTP 503错误页面,当您关闭/重新启动/重新部署Tomcat时会显示该页面。
另一个问题是,我将如何访问Tomcat服务器的根页面,我以前可以在localhost:8080访问它?
只需将apache-tomcat/webapps/ROOT
文件夹重命名为所需的名称,该名称应代表新的上下文路径。例如。 apache-tomcat/webapps/tomcathome
然后http://localhost:8080/tomcathome
将其提供给{{1}}。
答案 1 :(得分:1)
我通常会设置一个apache2 webserver和一个tomcat Server。然后我执行所有vhost设置apache端,并通过mod_proxy将特定域或路径的流量路由到Tomcat服务器的目标路径。这样您就可以访问host.tld:8080并根据需要设置域名。
所以基本上调用www.host.tld / welcome会导致Apache将请求内部路由到host.tld:8080 / myApp / welcome。
HTH并且对于我必须使用手机的简要说明感到抱歉。