【问题标题】:What is the purpose of CXF servletCXF servlet 的目的是什么
【发布时间】:2019-01-14 11:08:11
【问题描述】:

我正在使用 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 的用途相同吗?

帮我澄清这些问题。

【问题讨论】:

  • 请限制自己每个问题回答一个问题,提出多个问题会使您的问题过于宽泛,难以给出有针对性和完整的答案。特别是您的第 3 点和第 4 点应该是单独的问题。
  • @MarkRotteveel 从下一次开始我会牢记在心...感谢您的建议。

标签: java apache rest cxf


【解决方案1】:

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

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

差不多。类似于 Spring MVC 的DispatcherServlet

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

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

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

它使用 Spring 来连接组件;将它们全部连接在一起。但是it's not required (see also)。

org.glassfish.jersey.servlet.ServletContainer 在 Jersey 实现中的用途与 org.apache.cxf.transport.servlet.CXFServlet 在 Apache CXF 中的用途相同吗?

差不多。

【讨论】:

  • 谢谢@PaulSamsotha ...我想我可以从这些信息开始,以挖掘更多相同的信息。它真的帮助我理解了一点。虽然我想在这里再问一个问题。您能否详细说明一下JAX-RS 规范建立在Servlet 规范之上 这句话。这对我有帮助。
  • JAX-RS is a specification。在本文档中,他们指定 JAX-RS 应用程序应作为 servlet 应用程序在 servlet 容器中运行。
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多