是否可以在没有 Spring 的情况下将 CXF 与 Tomcat 一起使用?如果是这样,怎么做?
4 回答
您可以在没有 Spring 的情况下以编程方式配置 CXF。请参阅此处的代码示例。将 Web 应用程序上下文路径与端点扩展(代码示例中的 Greeter)放在一起,将在浏览器中显示一个摘要页面,其中包含指向 WSDL 的链接。
不需要弹簧,使 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 对于某些配置也可能是必需的,但我不需要它。
玩得开心!
我想你的意思是用 CFX 创建一个可以在 Tomcat 中运行的 Web 服务?这是完全可能的,Spring 是可选的。如果您不想使用,则不必使用它。
CXF 旨在与弹簧一起使用。很奇怪你想在没有它的情况下使用它。
您可以尝试 NoSpringServletServer 并使用 ServerFactoryBean 或 JaxWS API。
这是NoSpringServletServer的代码。
但是您仍然需要 spring 作为依赖项。基本的 JaxWS 可以在没有 spring 的情况下完成。但是对于几乎任何其他东西,您至少需要 spring-core.jar
我认为在 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