从 1.X 到 2.X:
1:web.xml 加载 jersey 的 servlet 容器
jersey1.X 使用的是 sun 的 com.sun.jersey.spi.container.servlet.ServletContainer
jersey2.X 使用的是 glassfish 的 org.glassfish.jersey.servlet.ServletContainer
2: 扫描 jersey resource
jersey1.X 使用的是 sun 的 com.sun.jersey.config.property.packages
jersey2.X 使用的是 glassfish 的 jersey.config.server.provider.packages
3:jersey2.X 可以使用 servlet3 的 @WebServlet 扫描 jersey resource. 不需要特别配置 web.xml
例如:
- import javax.servlet.annotation.WebInitParam;
- import javax.servlet.annotation.WebServlet;
- import org.glassfish.jersey.servlet.ServletContainer;
- @WebServlet(initParams = @WebInitParam(name = "jersey.config.server.provider.packages", value = "com.example"), urlPatterns = "/webapi/*", loadOnStartup = 1)
- public class AirServlet extends ServletContainer {
- private static final long serialVersionUID = 1L;
- }
4:jersey2.X 可以使用 @ApplicationPath 注解, 加载 jersey resouce.
例如:
- @ApplicationPath("/webapi/*")
- public class AirApplication extends Application {
- @Override
- public Set<Class<?>> getClasses() {
- final Set<Class<?>> classes = new HashSet<Class<?>>();
- classes.add(MyResource.class);
- return classes;
- }
- }
5:jersey2.X 可以使用 web.xml 加载 Application
- <servlet>
- <servlet-name>Jersey Web Application</servlet-name>
- <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
- <init-param>
- <param-name>javax.ws.rs.Application</param-name>
- <param-value>com.example.RestApplication</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>Jersey Web Application</servlet-name>
- <url-pattern>/webapi/*</url-pattern>
- </servlet-mapping>
web.xml 相关设置:
- <servlet>
- <servlet-name>rest_test</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.test.jersey</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>rest_test</servlet-name>
- <url-pattern>/api/*</url-pattern>
- </servlet-mapping>
来源: https://www.2cto.com/kf/201805/747867.html