我有一个动态Web应用程序,由于这些要求,我在web.xml文件中指定了两种类型的servlet映射; Faces Servlet&泽西岛(JAX-RS实施)。
我的问题是,如果我尝试使用' / '作为Jersey配置中的基本url-pattern,Faces Servlets的资源停止工作,即如果我对这些资源进行REST调用没有任何反应,否则一切正常,如果我放置像' / rest / '在Jersey配置中。我的web.xml文件如下所示:
<!-- Jersey -->
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.saf.web.v2.beans</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
有没有办法指定Jersey映射,因此url-pattern中没有任何内容,但是&#39; / *&#39;和Faces Servlet资源同时也可以正常工作。
谢谢!
答案 0 :(得分:2)
如果你定义Jersey应该服务所有请求(这是/*
的意思),Faces Servlet就不再有机会了。总的来说:没有这样的方式。
也许你可以解决这个问题,将Jersey映射到/rest
并编写一个自己的Servlet映射到/*
dispatches到其他一个servlet。我不建议这样做。
答案 1 :(得分:0)
我有同样的问题,但我通过使用修复它 /休息/* 对于球衣的小配件 和应用程序的其他部分可以有任何其他url模式,在你的情况下,它是JSF的servlet的* .xhtml。