0 0

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个答案 按时间排序 按投票排序

1 0

采纳的答案

其实就是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
0 0

使用Provider/Dispatch前端模式

2016年12月10日 20:01

相关推荐

    cxf使用中编码问题

    - **配置CXF组件**:在CXF的配置文件(如cxf.xml或Spring配置文件)中,可以设置HTTP绑定的编码。例如,对于HTTP传输,可以使用`&lt;http-conf:conduit&gt;`标签来指定`charset_encoding`属性。 - **处理XML编码**:确保...

    Cxf转换器示例

    CXF框架中的转换器是实现了`org.apache.cxf.common.i18n.Message`接口的类,它们负责将消息数据转换为可理解的格式。CXF提供了一套默认的转换器,但为了满足特定需求,开发者可以编写自定义转换器来扩展这一功能。 ...

    Cxf例子Cxf例子我自己写的

    CXF支持多种协议,如HTTP、HTTPS、FTP,以及各种消息格式,如SOAP、RESTful、XML和JSON。 2. **CXF工作原理**:CXF通过Java语言绑定(JAXB)和Java对象模型(JAX-RS)将Java对象转换为XML消息,并将XML消息转换回...

    cxf所需jar包(内含配置文件)

    而“cxf所需jar包”则包含了CXF框架以及其依赖的库文件,这些库提供了CXF框架运行所需的各种功能,例如XML解析、网络通信、SOAP消息处理等。 总的来说,这个压缩包为开发者提供了一个便捷的起点,用于在SpringMVC...

    cxf-core-3.2.4_cxf_源码

    5. **Data Binding**:数据绑定是将XML消息转换为Java对象或将Java对象转换为XML消息的过程。CXF支持JAXB、Aegis等多种数据绑定机制。 6. **Message**:CXF中的消息模型用于表示通信中的数据,包括请求和响应。 在...

    cxf 3.1.1 jar包

    7. **cxf-rt-bindings-xml.jar**: 提供XML绑定支持,用于处理非SOAP的XML消息。 8. **cxf-rt-ws-security.jar**: 包含了WS-Security和其他安全相关的实现,用于Web服务的安全认证和加密。 9. **cxf-tools-common.jar...

    用cxf开发webservice

    在`applicationContext-cxf.xml`文件中,你可以定义CXF的行为和扩展,比如服务端点、数据绑定和消息处理器等。这是一个XML配置文件,用来声明Spring Bean,定义CXF服务的组件和服务的行为。 开发阶段,你需要实现...

    CXF-JAXB包的处理问题

    CXF支持多种协议和绑定,包括SOAP、RESTful HTTP、JMS等。而JAXB(Java Architecture for XML Binding)是Java平台的标准,用于将XML数据与Java对象之间进行绑定,使得开发者可以方便地在XML文档和Java对象之间转换...

    cxf源代码,样例,cxfdemo

    3. **数据绑定**:CXF支持多种数据绑定机制,如JAXB(Java Architecture for XML Binding),用于将Java对象与XML消息自动映射,简化了数据交换过程。 4. **WS-Security**:CXF提供了强大的安全特性,支持WS-...

    apache-cxf-2.5.2

    2. **多种协议支持**:CXF支持多种通信协议,如HTTP、HTTPS、JMS等,同时也支持SOAP、REST、XML/HTTP等多种消息格式。 3. **数据绑定**:CXF提供了数据绑定机制,可以将Java对象直接映射到XML消息,反之亦然。例如...

    cxf基本jar包

    - `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服务的额外提供...

    apache-cxf-3.1.6所有jar包

    3. **数据绑定**:CXF支持XML到Java对象的映射,如JAXB(Java Architecture for XML Binding),使得XML消息能够与Java对象无缝交互。 4. **传输和编码**:CXF提供了多种传输方式,如HTTP、HTTPS、JMS等,以及多种...

    apache-cxf-3.1.9

    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格式传输对象

    在CXF中,JSON与XML之间的转换是通过数据绑定机制实现的。 2. CXF与JSON集成 CXF提供了多种方式来处理JSON数据,包括使用Jackson、Gson等流行的JSON库。通过配置CXF客户端和服务端,可以方便地在JSON和Java对象...

    apache cxf_jar包

    10. **cxf-rt-databinding-jaxb-2.7.12.jar**: JAXB(Java Architecture for XML Binding)数据绑定模块,是CXF中最常用的选项,它可以自动将Java对象转换为XML和从XML反序列化回Java对象。 总结起来,这个"apache ...

    cxf客户端所需jar包-4个

    WSDL是一种XML格式,定义了Web服务的接口,包括操作、消息格式和绑定信息。使用wsdl2java.jar,开发者可以避免手动编写复杂的SOAP请求和解析响应,极大地提高了开发效率。 2. **cxf-rt-frontend-jaxws.jar**:这是...

    apache-cxf-2.7.6.rar

    6. **插件体系**:Apache CXF有一个灵活的插件架构,开发者可以根据需要扩展或替换其组件,如消息格式化器、协议处理器等。 在Apache CXF 2.7.6版本中,可能包含了以下内容: - **源代码**:项目的原始Java源代码...

    apache-cxf-2.0.10.zip下载地址

    CXF利用JAXB进行数据绑定,使得XML消息与Java对象之间的交互变得简单。 4. **SOAP和RESTful支持**:CXF不仅支持传统的SOAP协议,还支持RESTful风格的服务,使得开发人员可以选择最适合其应用场景的技术栈。 5. **...

    cxf所需jar包

    4. **cxf-rt-bindings-soap**: 提供了SOAP绑定,负责将XML消息转换为Java对象,反之亦然。 5. **cxf-rt-wsdl**: 解析并处理WSDL(Web Service Description Language),这是定义Web服务接口的标准语言。 6. **cxf-...

    cxf相关的jar

    5. `cxf-rt-bindings-soap.jar` 和 `cxf-rt-bindings-xml.jar`: 处理SOAP消息的绑定层,负责将Java对象转换为XML消息和反之亦然。 6. `cxf-rt-wsdl.jar`: 提供了WSDL(Web Services Description Language)处理,...

Global site tag (gtag.js) - Google Analytics