方法1 (使用servlet的init param
jersey.config.server.provider.packages):是特定于Jersey的,仅在包中显示。在不同的JAX-
RS实现之间不可移植。当您想限制考虑的JAX-RS资源类/应用程序时,可以在方案中使用它。
方法2 (使用servlet的init param
javax.ws.rs.Application):任何JAX-
RS实现都必须支持此部署选项,因此必须是可移植的(尽管如果您切换至RestEasy之类的另一个JAX-
RS实现,则必须更改servlet的类)。此选项提供了更高的粒度(您可以完全选择要考虑的类,而不仅仅是整个软件包)。缺点:您必须编写更多代码。
方法3 (在Servlet版本3容器中,您可能已经在其中部署了):仅定义没有任何Servlet的JAX-
RS应用程序(检查使用web.xml描述符的Deployment)可能是最好的方法(在JAX-
如果您有显式声明的JAX-RS应用程序,则可以使用RS实现,并且可以在不更改web.xml的情况下更改JAX-RS实现。
方法4 如果要将战争归档中的所有类部署到servlet容器3中(没有显式定义的JAX-
RS应用程序),则也可以通过可移植的方式进行。在此处检查它:没有Application子类的JAX-
RS应用程序



