-
CXF的纯XML消息格式的HTTP绑定问题10
利用CXF开发Web Service时,我们大部分都是通过SOAP协议完成数据交互的,但在CXF的介绍中,它是这样表述的:Apache CXF支持多种通信传输协议,包括HTTP/HTTPS、JMS、 Servlet及同一JVM内通信,并提供了SOAP或纯XML通信消息格式(payload) 支持。
我的理解是,如果不利用SOAP协议,那应该是通过HTTP POST 或者HTTP GET来实现与CXF所写的服务的数据交互的吧。可我在网上搜了很久都没有,我怀疑是我理解的有问题,有没有一个简单的小例子,可以实现纯XML和CXF所写的服务非SOAP协议的交互?
2013年4月22日 20:05
2个答案 按时间排序 按投票排序
-
采纳的答案
其实就是xml数据放在哪种数据交互协议上而已。比如说servlet发布的webservice,就是把你的服务注册到ServerFactoryBean中,然后servlet再配置到web.xml,这样就可以了。举个例子,基于servlet的webservice的demo:
package com.work.ws.servlet; import javax.servlet.ServletConfig; import org.apache.cxf.frontend.ServerFactoryBean; import org.apache.cxf.transport.servlet.CXFNonSpringServlet; public class HelloServlet extends CXFNonSpringServlet { /** * */ private static final long serialVersionUID = -600122743946581491L; @Override protected void loadBus(ServletConfig sc) { super.loadBus(sc); try { registService(HelloService.class.getSimpleName(), HelloService.class.newInstance()); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } public void registService(String serviceName, Object impl) { ServerFactoryBean svrFactory = new ServerFactoryBean(); svrFactory.setServiceClass(impl.getClass()); svrFactory.setAddress("/" + serviceName); svrFactory.setServiceBean(impl); svrFactory.create(); } } class HelloService { public String hello(String msg) { return "hello " + msg; } }
再配置servlet:<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.work.ws.servlet.HelloServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
这样访问http://localhost:8080/jaxws/services/HelloService?wsdl就能访问到servlet发布的webservice了。2013年4月22日 21:31
相关推荐
- **配置CXF组件**:在CXF的配置文件(如cxf.xml或Spring配置文件)中,可以设置HTTP绑定的编码。例如,对于HTTP传输,可以使用`<http-conf:conduit>`标签来指定`charset_encoding`属性。 - **处理XML编码**:确保...
CXF框架中的转换器是实现了`org.apache.cxf.common.i18n.Message`接口的类,它们负责将消息数据转换为可理解的格式。CXF提供了一套默认的转换器,但为了满足特定需求,开发者可以编写自定义转换器来扩展这一功能。 ...
CXF支持多种协议,如HTTP、HTTPS、FTP,以及各种消息格式,如SOAP、RESTful、XML和JSON。 2. **CXF工作原理**:CXF通过Java语言绑定(JAXB)和Java对象模型(JAX-RS)将Java对象转换为XML消息,并将XML消息转换回...
而“cxf所需jar包”则包含了CXF框架以及其依赖的库文件,这些库提供了CXF框架运行所需的各种功能,例如XML解析、网络通信、SOAP消息处理等。 总的来说,这个压缩包为开发者提供了一个便捷的起点,用于在SpringMVC...
5. **Data Binding**:数据绑定是将XML消息转换为Java对象或将Java对象转换为XML消息的过程。CXF支持JAXB、Aegis等多种数据绑定机制。 6. **Message**:CXF中的消息模型用于表示通信中的数据,包括请求和响应。 在...
7. **cxf-rt-bindings-xml.jar**: 提供XML绑定支持,用于处理非SOAP的XML消息。 8. **cxf-rt-ws-security.jar**: 包含了WS-Security和其他安全相关的实现,用于Web服务的安全认证和加密。 9. **cxf-tools-common.jar...
在`applicationContext-cxf.xml`文件中,你可以定义CXF的行为和扩展,比如服务端点、数据绑定和消息处理器等。这是一个XML配置文件,用来声明Spring Bean,定义CXF服务的组件和服务的行为。 开发阶段,你需要实现...
CXF支持多种协议和绑定,包括SOAP、RESTful HTTP、JMS等。而JAXB(Java Architecture for XML Binding)是Java平台的标准,用于将XML数据与Java对象之间进行绑定,使得开发者可以方便地在XML文档和Java对象之间转换...
3. **数据绑定**:CXF支持多种数据绑定机制,如JAXB(Java Architecture for XML Binding),用于将Java对象与XML消息自动映射,简化了数据交换过程。 4. **WS-Security**:CXF提供了强大的安全特性,支持WS-...
2. **多种协议支持**:CXF支持多种通信协议,如HTTP、HTTPS、JMS等,同时也支持SOAP、REST、XML/HTTP等多种消息格式。 3. **数据绑定**:CXF提供了数据绑定机制,可以将Java对象直接映射到XML消息,反之亦然。例如...
- `cxf-rt-bindings-xml.jar`:XML绑定支持。 - `cxf-rt-ws-policy.jar`:Web服务策略支持。 - `cxf-rt-databinding-jaxb.jar`:JAXB数据绑定支持。 - `cxf-rt-rs-extension-providers.jar`:RESTful服务的额外提供...
3. **数据绑定**:CXF支持XML到Java对象的映射,如JAXB(Java Architecture for XML Binding),使得XML消息能够与Java对象无缝交互。 4. **传输和编码**:CXF提供了多种传输方式,如HTTP、HTTPS、JMS等,以及多种...
3. **数据绑定**:CXF 提供JAXB(Java Architecture for XML Binding)和JAX-BT(Java API for XML-based Web Services with Attachments)数据绑定,使得Java对象可以直接与XML消息交互。 4. **协议栈**:CXF支持...
在CXF中,JSON与XML之间的转换是通过数据绑定机制实现的。 2. CXF与JSON集成 CXF提供了多种方式来处理JSON数据,包括使用Jackson、Gson等流行的JSON库。通过配置CXF客户端和服务端,可以方便地在JSON和Java对象...
10. **cxf-rt-databinding-jaxb-2.7.12.jar**: JAXB(Java Architecture for XML Binding)数据绑定模块,是CXF中最常用的选项,它可以自动将Java对象转换为XML和从XML反序列化回Java对象。 总结起来,这个"apache ...
WSDL是一种XML格式,定义了Web服务的接口,包括操作、消息格式和绑定信息。使用wsdl2java.jar,开发者可以避免手动编写复杂的SOAP请求和解析响应,极大地提高了开发效率。 2. **cxf-rt-frontend-jaxws.jar**:这是...
6. **插件体系**:Apache CXF有一个灵活的插件架构,开发者可以根据需要扩展或替换其组件,如消息格式化器、协议处理器等。 在Apache CXF 2.7.6版本中,可能包含了以下内容: - **源代码**:项目的原始Java源代码...
CXF利用JAXB进行数据绑定,使得XML消息与Java对象之间的交互变得简单。 4. **SOAP和RESTful支持**:CXF不仅支持传统的SOAP协议,还支持RESTful风格的服务,使得开发人员可以选择最适合其应用场景的技术栈。 5. **...
4. **cxf-rt-bindings-soap**: 提供了SOAP绑定,负责将XML消息转换为Java对象,反之亦然。 5. **cxf-rt-wsdl**: 解析并处理WSDL(Web Service Description Language),这是定义Web服务接口的标准语言。 6. **cxf-...
5. `cxf-rt-bindings-soap.jar` 和 `cxf-rt-bindings-xml.jar`: 处理SOAP消息的绑定层,负责将Java对象转换为XML消息和反之亦然。 6. `cxf-rt-wsdl.jar`: 提供了WSDL(Web Services Description Language)处理,...