避免使用项目目录 - Java EE应用程序

时间:2014-03-01 21:12:03

标签: java java-ee tomcat

我正在使用Java EE编写小应用程序。我使用Apache Tomcat v 7和Eclipse作为IDE。当我运行项目(在服务器上运行)时,我得到:

http://127.0.0.1:8080/java-web/lis

(没关系)

但我不知道如果有一些方法可以重写[java-web]目录只是为了得到:

http://my-local-app.dev/list

我想在Apache Server中有一些使用confing文件和启用的方法 mod_rewrite。

我会帮助你。感谢

2 个答案:

答案 0 :(得分:0)

简而言之:您要更改的所有部分都是部署环境的组件。除非您特别需要覆盖它们,否则在开发过程中通常最容易使用不那么漂亮的URL。

如果您确实想要更改它们,则需要熟悉HTTP URL的各个部分的含义。您在测试环境中拥有的是:

http://  127.0.0.1:8080/java-web/list
protocol host      port path

您可以在hosts my-local-app.dev文件列表中127.0.0.1插入一个条目,但这不会改变端口或路径。

端口在Tomcat启动时确定,默认为8080。 HTTP的常规端口是80,但是需要特定权限才能绑定到1024以下的端口。在Linux上,authbind包使这很容易;在Windows上,必要的步骤取决于您的版本和配置(例如,如果您有组策略)。

在Tomcat中,Web应用程序在路径中以其名称为前缀;看起来你的(假设?)应用程序名为java-web.war。您可以将应用程序安装为“根应用程序”,但这需要更多配置,并且通常会在开发过程中跳过。

所有这些确实也可以使用像mod_rewrite这样的东西来完成,但是为你的开发机器提供稍微漂亮的URL似乎有些过分。

答案 1 :(得分:0)

如果您希望您的应用程序响应my-local-app.dev,您需要购买“my-local-app.dev”域并在其上运行Java Web酒店。

如果您的Web应用程序名为“java-web”并且您不希望URL反映这一点,则需要告诉Tomcat您希望将您的应用程序部署在不存在Web应用程序名称的ROOT位置在URL中。这通常在部署阶段完成,但遗憾的是没有标准位置可以为WAR文件说明这一点,因此这取决于供应商。例如,Glassfish在部署中使用额外的XML文件。

我相信Tomcat支持ROOT.war文件。如果没有,您可能需要设置META-INF / context.xml文件。有关此文件中的内容的详细信息,请参阅https://tomcat.apache.org/tomcat-7.0-doc/config/context.html。特别是上下文路径。