如何配置重定向Glassfish4 Maven Webapp

时间:2016-01-27 12:00:53

标签: angularjs maven glassfish angular-routing

我正在使用Glassfish 4开发WebApp。我有一个REST后端,使用Jersey在JAVA中开发,以及一个AngularJS前端。所有这些都包含在MAVEN Jersey-Quickstart-Webapp中。

现在,我遇到的问题是,当人们查询我的应用的网址时:

http://localhost:8080/MyApp/

它工作正常,并将适当的index.html发送给用户。但是,如果用户键入的网址应该是'由我的应用程序路由处理,例如:

http://localhost:8080/MyApp/search

它给出了404错误。但是,如果从/ MyApp / route开始,可以从应用程序内部访问此URL,因为与所有angularJS内容一起提供的index.html能够理解和控制路由。

基本上我遇到的问题是我需要为应该返回index.html的所有必要位置设置适当的重定向。

所以,当我点击以下任何一个URL时,它应该向用户发送index.html,并让AngularJs找出路由

例如

http://localhost:8080/MyApp/search   ----> index.html
http://localhost:8080/MyApp/results  ----> index.html
http://localhost:8080/MyApp/browse   ----> index.html

不幸的是,我可能在这里真的很厚,但我不知道如何配置服务器/ webapp来做到这一点。我该怎么做呢?我认为这是相当明显/微不足道的,但我对这些东西都很陌生,所以对我这么说吧!

编辑1:我对使用mod-rewrite或UrlRewriteFilter有一些很好的帮助,但就我所见,这些似乎都不适用于Glassfish4。有没有人可能会知道的那些?

2 个答案:

答案 0 :(得分:2)

正如@Tunaki所说,您需要使用apache并使用mod_rewrite。 另外,您可以使用UrlRewriteFilter这允许您在访问代码之前重写URL。

为此,您需要向您的maven文件添加依赖项:

<dependency>
    <groupId>org.tuckey</groupId>
    <artifactId>urlrewritefilter</artifactId>
    <version>4.0.3</version>
</dependency>

并添加 WEB-INF / web.xml 文件:

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

此外,您在文档中指定了大量参数: http://cdn.rawgit.com/paultuckey/urlrewritefilter/master/src/doc/manual/4.0/index.html#filterparams

http://localhost:8080/MyApp/search   ----> search.html
http://localhost:8080/MyApp/results  ----> results.html
http://localhost:8080/MyApp/browse   ----> browse.html

答案 1 :(得分:2)

  • 登录glassfish在管理控制台中,展开“配置” 节点。展开server-config节点。如果您愿意,请忽略此步骤 运行开发人员域(没有群集的域) 能力)。展开HTTP服务。展开虚拟服务器。点击 服务器。在“编辑虚拟服务器”页面上,单击“添加属性” 按钮。在“名称”列中,键入redirect_1。

    如果您使用的是Application Server 9.0,请键入 从= // myproduct1 值中的url-prefix = / mywarname / mypages / products / myproduct1.jsp 列。

    注意 - 您在此提供的价值需要 匹配web.xml中指定的上下文根的值或 application.xml文件。