jersey1.X與jersey2.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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章