我有一个类似的问题: Shorten path of REST service in JBoss Seam application 但由于我最初的代表,无法评论船长答案。他在7月19日18:10的评论误解了这种情况:
Faces servlet由url-pattern *.xhtml
映射,Seam Resource Servlet映射到/*
。 /*
现在获取所有网址格式,甚至是*.html
的网址格式,因为它在网址格式匹配方面具有更高的优先级。
我可以在代码中的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>
之类的路径访问,而不会使我的*.xhtml
面对servlet失效(使用他的提示改变Seam Resource Servlet url-模式为/*
)?
(kongo09基本上是未解决的问题,更详细)。
答案 0 :(得分:0)
您正在寻找网址重写解决方案。 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/