首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泽西岛如何连接到servlet 3容器

泽西岛如何连接到servlet 3容器
EN

Stack Overflow用户
提问于 2017-03-15 14:26:44
回答 1查看 1.1K关注 0票数 1

对于Servlet2.5,必须在web.xml中声明泽西容器servlet,以便将泽西岛连接到Tomcat。

代码语言:javascript
复制
<web-app>
    <servlet>
        <servlet-name>MyApplication</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            ...
        </init-param>
    </servlet>
</web-app>

对于servlet 3.x,我们可以做同样的事情。但是,我们也可以摆脱web.xml中的,并将一个Application子类直接放入其中。

代码语言:javascript
复制
<web-app>
    <servlet>
        <servlet-name>org.foo.rest.MyApplication</servlet-name>
    </servlet>
    ...
    <servlet-mapping>
        <servlet-name>org.foo.rest.MyApplication</servlet-name>
        <url-pattern>/resources</url-pattern>
    </servlet-mapping>
    ...
</web-app>

我的问题是,在这种情况下,泽西岛是如何融入Tomcat的?Application类是隐式地执行某些操作,还是servlet在类路径中自动发现Jersey?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 14:55:45

我不确定jersey是如何实现它的,但是他们可能会使用几种方法:

  • Servlet3.0中引入了一个名为ServletContainerInitializer的特性(http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContainerInitializer.html ),它允许将web应用程序的启动阶段通知库/运行时,并对Servlet、过滤器和侦听器执行任何必需的编程注册以响应它
  • 您可以将他的库创建为web-fragment,这允许您在jar中包含web片段. the,您可以在其中注册servlets/filter/等等,然后在启动时将这个web-fragment.xmlweb.xml合并。因此,将在web片段中注册的组件视为在web.xml中注册的组件。

编辑:(来自@peeskillet注释)泽西使用servlet容器初始化器:https://github.com/jersey/jersey/blob/master/containers/jersey-servlet/src/main/java/org/glassfish/jersey/servlet/init/JerseyServletContainerInitializer.java

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42812584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档