【问题标题】:CXF without Spring [closed]不带弹簧的 CXF [关闭]
【发布时间】:2010-10-15 22:48:28
【问题描述】:

是否可以在没有 Spring 的情况下将 CXF 与 Tomcat 一起使用?如果有,怎么做?

【问题讨论】:

    标签: java web-services tomcat cxf


    【解决方案1】:

    我想你的意思是用 CFX 创建一个可以在 Tomcat 中运行的 Web 服务?这是完全可能的,Spring 是可选的。如果您不想使用,则不必使用它。

    【讨论】:

    • 好吧,我相信他问的是如何做到这一点,而不仅仅是能否做到。
    【解决方案2】:

    CXF 旨在与弹簧一起使用。很奇怪你想在没有它的情况下使用它。

    您可以尝试 NoSpringServletServer 并使用 ServerFactoryBean 或 JaxWS API。

    这是NoSpringServletServer的代码。

    但是您将仍然需要 spring 作为依赖项。基本的 JaxWS 可以在没有 spring 的情况下完成。但是对于几乎任何其他东西,您至少需要 spring-core.jar

    【讨论】:

    • 实际上,我正在考虑构建一个 web 应用程序,将其部署为 tomcat 中的 war 文件,而不是独立服务器。所以我也不需要 Jetty。
    • webapp 部署在 tomcat 上,就像在任何其他 servlet 容器中一样(几乎)。该示例显示了一个独立的服务器,但可以从 web.xml 引用 servlet。 CXFNonSpringServlet 扩展了你知道的 Servlet。
    • 该链接似乎不再有效。这是另一个信息来源:cxf.apache.org/docs/…
    • 为什么要在没有 Spring 的情况下使用 CXF 会很奇怪?假设你还没有在你的应用程序中使用 Spring,那么它就是一大堆依赖项,只是为了让 web 服务正常工作。完全可以在没有 Spring Core 的情况下运行 CXF。您编写的代码更多,但 XML 更少,所以这是一种权衡。
    【解决方案3】:

    我认为在Tomcat中完全独立于spring使用CXF是不可能的。

    原因是当我为一个最低限度的 CXF webservice 做一个 Maven 依赖树列表 (mvn dependency:tree) 时,列出了以下内容(这表明它需要 Spring)

         +- org.apache.cxf:cxf-rt-core:jar:2.2.2:compile
    [INFO] |  |  +- com.sun.xml.bind:jaxb-impl:jar:2.1.9:compile
    
    [INFO] |  |  +- org.springframework:spring-core:jar:2.5.5:compile
    
    [INFO] |  |  +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.6:compile
    
        org.apache.cxf:cxf-rt-transports-http:jar:2.2.2:compile
    [INFO]    \- org.springframework:spring-web:jar:2.5.5:compile
    
    [INFO]       +- commons-logging:commons-logging:jar:1.1.1:compile
    

    【讨论】:

    • 只使用 org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
    • 我同意依赖树仍然具有传递的spring依赖,同意@bercolax,通过编程可以避免spring api XML配置
    【解决方案4】:

    您可以在没有 Spring 的情况下以编程方式配置 CXF。请参阅代码示例here。将 Web 应用程序上下文路径与端点扩展(代码示例中的 Greeter)放在一起,将在浏览器中显示一个摘要页面,其中包含指向 WSDL 的链接。

    不需要 Spring,CXF 占用空间非常小。我发现唯一需要的罐子(对于 CXF 2.2.1):

    • XmlSchema-1.4.5.jar
    • cxf-2.2.3.jar
    • wsdl4j-1.6.2.jar

    我相信对于某些配置,neethi-2.0.4.jar 可能也是必需的,但我并不需要它。

    玩得开心!

    【讨论】:

      猜你喜欢
      • 2015-01-22
      • 2011-09-03
      • 2011-04-13
      • 1970-01-01
      • 2015-01-11
      • 2010-10-21
      • 2018-04-27
      • 1970-01-01
      相关资源
      最近更新 更多