CXF servlet 的目的是什么

New*_*ava 9 java apache rest cxf

我正在使用 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>
Run Code Online (Sandbox Code Playgroud)

我并没有真正理解这个 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服务于新泽西州实现相同的目的,org.apache.cxf.transport.servlet.CXFServlet与Apache CXF?

帮我澄清这些问题。

Pau*_*tha 10

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服务于新泽西州实现相同的目的,org.apache.cxf.transport.servlet.CXFServlet与Apache CXF?

差不多。