从网址中删除应用名称&只是使用域名来访问应用程序?

时间:2013-11-13 07:22:34

标签: java-ee tomcat war contextpath

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

www.myDomainName.com/welcome

而不是:

www.myDomainName.com/myAppName/welcome

我该如何配置呢?

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

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


使用在Tomcat 7上运行的JSF(Myfaces 2.2 beta)项目

2 个答案:

答案 0 :(得分:2)

  

我应该如何配置?

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

请注意,这意味着您应该从不硬编码webapp代码中的上下文路径,并且Java源代码始终依赖于HttpServletRequestgetContextPath()方法和/或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并且对于我必须使用手机的简要说明感到抱歉。