Apache CXF 实践指南:从入门到Spring集成

需积分: 7 0 下载量 122 浏览量 更新于2024-07-17 收藏 49KB DOCX 举报
Apache CXF 学习笔记是一份针对 Apache CXF 技术的深入指南,特别是关于 Web 服务接口的使用。文档详细介绍了 CXF 的基本概念、功能和支持的特性,以及在实践中如何应用。 1. **CXF简介** - CXF 是 Celtix 和 XFire 两个开源项目的融合产物,原名为 Apache CeltiXfire,现已更名。它作为 Apache 的一个顶级项目,提供全面的 JAX-WS 支持,兼容多种协议标准(如 JAX-WSA, JSR-181, SAAJ 等),SOAP 版本(1.1, 1.2)及安全性规范(WS-Security, WS-Addressing 等)。同时,支持 WSDL(1.1, 2.0)和MTOM(消息传输优化)。 - CXF 可以通过 CodeFirst 或 WSDLFirst 方式实现 Web 服务的创建和使用,具有很高的灵活性。 2. **实践讲解** - 文档包含了两个实践示例:纯 CXF 开发和 CXF 与 Spring 集成。通过步骤图和详解,读者可以学习如何使用 CXF 创建和部署服务,以及如何在集成环境下管理服务。 - 在 CXF 开发例子中,首先介绍了开发流程,包括具体步骤,帮助初学者理解服务的开发过程。 - 在 CXF 与 Spring 集成部分,展示了如何将 CXF 的服务无缝融入 Spring 框架,提升开发效率和组件间的协作。 3. **附录** - 提供了 CXF 客户端生成的方法,以及尚未完善的 CXF 注解参考。这表明文档不仅关注服务端开发,也关注客户端的构建。 - CXF 支持的数据绑定选项包括 JAXB2.0 和 Aegis,未来还会添加 XMLBeans、Castor 和 JiBX,显示了 CXF 在持续演进和扩展中的能力。 这份学习笔记对于想要深入了解 Apache CXF 并将其应用于实际项目中的开发者来说,是一份实用的参考资料,涵盖了理论基础、开发实践和工具支持等多个层面。无论是从零开始学习 CXF,还是希望改进现有项目中的 Web 服务架构,这份文档都将提供有价值的指导。

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.xml.ws.Endpoint]: Factory method 'endpoint' threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/cxf/frontend/ServerFactoryBean at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE] ... 19 common frames omitted Caused by: java.lang.NoClassDefFoundError: org/apache/cxf/frontend/ServerFactoryBean at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_301] at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[na:1.8.0_301] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_301] at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) ~[na:1.8.0_301] at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[na:1.8.0_301] at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[na:1.8.0_301] at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[na:1.8.0_301] at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_301] at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[na:1.8.0_301] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_301] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) ~[na:1.8.0_301] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_301] at org.apache.cxf.jaxws.EndpointImpl.<init>(EndpointImpl.java:164) ~[cxf-rt-frontend-jaxws-3.4.4.jar:3.4.4] at org.apache.cxf.jaxws.EndpointImpl.<init>(EndpointImpl.java:157) ~[cxf-rt-frontend-jaxws-3.4.4.jar:3.4.4] at org.apache.cxf.jaxws.EndpointImpl.<init>(EndpointImpl.java:171) ~[cxf-rt-frontend-jaxws-3.4.4.jar:3.4.4] at org.apache.cxf.jaxws.EndpointImpl.<init>(EndpointImpl.java:178) ~[cxf-rt-frontend-jaxws-3.4.4.jar:3.4.4]

181 浏览量