2

我有一个类似的问题: 缩短 JBoss Seam 应用程序中 REST 服务的路径 但由于我最初的代表,无法对船长的答案发表评论。他 7 月 19 日 18:10 的评论误解了情况:

Faces servlet 由 url-pattern 映射*.xhtml,Seam Resource Servlet 映射到/*. /*now 获取所有 url 模式,甚至是 的那些,*.html因为它在 url-pattern 匹配上具有更高的优先级。

我可以在代码中的 components.xml 上更改什么(默认行为): <resteasy:application resource-path-prefix="/rest"/> 以及以下代码中的 web.xml:

<servlet-mapping> 
    <servlet-name>Seam Resource Servlet</servlet-name>
    <url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>

在某种程度上,我的 RestEasy 资源可以通过类似的路径访问,/rest/<resource>而不是/seam/resource/rest/<resource>使我的*.xhtmlfaces servlet 无效(使用他将 Seam Resource Servlet url-pattern 更改为的提示/*)?

(基本上是kongo09的未解决问题比较详细)。

4

1 回答 1

0

您正在寻找 url 重写解决方案。Seam/RestEasy 仍然会得到完整的 URL,但客户端会得到一个非常短的 URL。

如果您使用 AJP 和 Apache 作为前端,您可以使用 httpd 的标准 mod_rewrite http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

如果你负担得起 JSF2,一个更简单的解决方案是 PrettyFaces http://ocpsoft.com/prettyfaces/

于 2011-06-14T01:25:58.523 回答