首页 > 解决方案 > CXF servlet 的目的是什么

问题描述

我正在使用 Apache CXF 进行 Restful webservice 的演示项目设置,我碰巧在 web.xml 中找到了一段代码:

    <servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

我真的不明白这个 web.xml 中 servlet 类的使用。我搜索org.apache.cxf.transport.servlet.CXFServlet并发现:

由 Apache CXF 定义的 CXFServlet 类被生成并注册以处理传入的请求。

现在,我真的不明白那条线是什么意思

  1. 这个 servlet 是否像在 Spring MVC 流中那样充当前端控制器?
  2. 使用这个 servlet 类的实际目的是什么?
  3. CXF如何使用Spring提供项目中定义的服务的XML配置?
  4. org.glassfish.jersey.servlet.ServletContainer在 Jersey 实现中的目的是否org.apache.cxf.transport.servlet.CXFServlet与 Apache CXF 相同?

帮我澄清这些问题。

标签: javaapacherestcxf

解决方案


JAX-RS 规范建立在 Servlet 规范之上。每个实现都应该有一个 Servlet 作为应用程序的入口点。当一个请求进来时,它被那个 Servlet 处理。CXFServlet是 CXF 对该入口点 Servlet 的实现。

这个 servlet 是否像在 Spring MVC 流中那样充当前端控制器?

差不多。它类似于 Spring MVC 的DispatcherServlet

使用这个 servlet 类的实际目的是什么?

如上所述,它是 JAX-RS (CXF) 应用程序的入口点。

CXF如何使用Spring提供项目中定义的服务的XML配置?

它使用 Spring 连接组件;将它们全部连接在一起。但这不是必需的另请参阅)。

org.glassfish.jersey.servlet.ServletContainer在 Jersey 实现中的目的是否org.apache.cxf.transport.servlet.CXFServlet与 Apache CXF 相同?

差不多。


推荐阅读