`
myten
  • 浏览: 134014 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CXF利用Json格式传输对象

 
阅读更多
一直以来很少在Iteye上发帖,这次也是闲来无趣。把自己总结的利用JSON格式传递复杂对象的WebService的例子发上来,好让新手学习下。

准备工作
CXF http://cxf.apache.org/
Gson http://code.google.com/p/google-gson/

众所周知,WebService传输复杂对象是比较麻烦的事情,因为要实现个可序列化接口。
假设现在一个自定义类型里有List,并且该List里仍旧是自定义类型
这样就比较麻烦了。但是我们可以简单的搞定。前提是利用Gson,传输Json格式的字符串是一个比较高效率的方案,本人不怎么喜欢XML,因为XML格式的字符串增加了报文长度。
我也不多说废话。还是上附件吧。两个工程,Eclipse工程。

附件为三个,其中cxf-2.42.jar本来应当在CXFServer包得lib目录里,但是Iteye附件限制10MB,只好拆出来了。
分享到:
评论
5 楼 wkq313992609 2014-12-01  
为什么用tomcat一运行就报错?
十二月 01, 2014 3:36:04 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十二月 01, 2014 3:36:04 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.52
十二月 01, 2014 3:36:04 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\apache-tomcat-7.0.52\webapps\CXF
十二月 01, 2014 3:36:05 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\apache-tomcat-7.0.52\webapps\CXF\WEB-INF\lib\geronimo-servlet_3.0_spec-1.0.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
十二月 01, 2014 3:36:08 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
十二月 01, 2014 3:36:08 下午 org.springframework.web.context.ContextLoader initWebApplicationContext
信息: Root WebApplicationContext: initialization started
十二月 01, 2014 3:36:08 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing Root WebApplicationContext: startup date [Mon Dec 01 15:36:08 CST 2014]; root of context hierarchy
十二月 01, 2014 3:36:08 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from ServletContext resource [/WEB-INF/beans.xml]
十二月 01, 2014 3:36:10 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [META-INF/cxf/cxf.xml]
十二月 01, 2014 3:36:10 下午 org.springframework.web.context.ContextLoader initWebApplicationContext
严重: Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:META-INF/cxf/cxf.xml]
Offending resource: ServletContext resource [/WEB-INF/beans.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [META-INF/cxf/cxf.xml]; nested exception is java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:192)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
4 楼 fyan888 2013-04-01  
强大!很好!
3 楼 mo0503 2012-10-19  
学习了....
2 楼 tianxin_008883 2012-04-28  
学习了
1 楼 JavaStudyEye 2011-12-09  
这个还是字符串,啥时候搞个客户端向服务器段传对象,不用xml的啊?

相关推荐

    Apache CXF + Spring3 + REST + JSON配置

    在"Apache CXF + Spring3 + REST + JSON配置"中,我们主要探讨如何利用Apache CXF和Spring 3框架来构建RESTful服务,并使用JSON作为数据交换格式。以下是一些关键知识点: 1. **Spring 3集成CXF**: - 首先,你...

    json.rar_Soap To json_java webservice json_json rpc SOAP_json we

    4. **SOAP JSON**:这指的是将SOAP协议与JSON格式结合使用的情况,可能是在某些服务中仍需使用SOAP,但希望利用JSON的效率优势。 5. **Web Service JSON**:在现代Web服务中,JSON已经成为首选的数据交换格式,因为...

    cxf所需jar包

    6. **cxf-rt-rs-extension-providers**: 对于RESTful服务,CXF提供了JAXB和JSON支持,这个模块包含了相应的提供者。 7. **cxf-rt-security**: 提供安全相关的功能,如WS-Security和OAuth。 8. **cxf-rt-transports...

    apache-cxf-3.1.11

    使用Apache CXF时,开发者可以利用CXF的动态客户端功能,无需预先知道服务的具体实现,只需通过WSDL地址即可创建客户端代理。同时,CXF的拦截器机制允许自定义处理逻辑,如日志记录、安全验证等,增强了服务的灵活性...

    cxf相关的jar

    7. `cxf-rt-rs-extension-providers.jar`: 包含了JAX-RS的提供者,如JSON和XML数据格式的支持。 8. `cxf-rt-security.jar`: 提供Web服务安全相关的功能,如WS-Security、OAuth等。 9. `cxf-rt-databinding-aegis.jar...

    CXF3.1.13jar包

    6. **传输和编码**:CXF支持多种传输方式,如HTTP、HTTPS、JMS等,以及各种消息编码格式,如XML、JSON等。 7. **插件和扩展**:CXF有一个可扩展的架构,允许开发人员根据需求添加自定义插件和扩展,以适应特定的...

    apache-cxf-3.1.6

    3. **数据绑定**:CXF支持多种数据绑定技术,如JAXB(Java Architecture for XML Binding)用于SOAP服务,和JSON-B(Java API for JSON Binding)用于RESTful服务,帮助将XML或JSON文档与Java对象之间进行自动转换。...

    CXF源码及其lib包

    3. **绑定框架**:CXF的绑定框架允许开发者将服务与各种传输方式(如HTTP、JMS、SMTP等)关联起来,同时支持多种消息格式,如XML、JSON等。 4. **数据绑定**:CXF支持多种数据绑定技术,包括JAXB(Java ...

    apache-cxf-2.7.3.rar

    在实际开发中,CXF提供了多种传输协议支持,如HTTP、HTTPS、JMS等,以及各种绑定和数据格式支持,如XML、JSON等。这使得CXF能够适应各种不同的应用场景和需求。 总的来说,"apache-cxf-2.7.3.rar"这个压缩包是学习...

    cxf案例代码

    - **协议栈**:CXF提供了多种传输协议支持,包括HTTP、HTTPS、JMS等,以及多种消息格式,如XML、JSON等。 - **安全特性**:支持WS-Security等标准,实现服务的安全认证和授权。 3. **CXF的工作流程** - **服务端...

    apache-cxf-2.7.12

    5. **协议栈**:CXF支持多种传输协议,包括HTTP、HTTPS、JMS等,同时可以处理多种消息格式,如XML、JSON。 6. **客户端API**:CXF提供了一个强大的客户端API,可以方便地调用远程Web服务,无论是SOAP还是RESTful。 ...

    apache-cxf-2.2.9

    - **多种传输和绑定机制**:CXF支持HTTP、HTTPS、JMS等多种传输方式,同时可以绑定到不同的消息格式,如SOAP、XML、JSON等。 **5. 集成与部署** Apache CXF 2.2.9可以轻松地与Spring框架集成,利用Spring的依赖注入...

    apache-cxf-2.5.9

    4. **协议绑定**:CXF允许开发者选择多种传输协议,如HTTP、HTTPS、JMS等,同时也支持多种消息格式,包括XML、JSON等。 5. **客户端API**:CXF提供了一种强大的客户端API,使得调用远程服务就像调用本地方法一样...

    cxf webservice restful实现

    - 使用JAXB进行数据绑定:CXF支持JAXB(Java Architecture for XML Binding),可以通过注解将Java对象自动转换为JSON或XML格式,方便RESTful接口的数据交换。 - 定义资源路径:使用`@Path`注解定义资源路径,如`@...

    apache-cxf-2.7.3

    6. **传输与编码**:CXF允许自定义传输层和消息编码,以适应不同的网络环境和性能需求。 7. **测试工具**:CXF包含一个强大的测试框架,如CXF TestSuite,帮助开发者进行集成测试和端到端测试,确保服务的正确性和...

    cxf-3.0.10

    在描述中提到的 "apach-cxf-3.0.10 jar包" 是Apache CXF 3.0.10版本的核心库,通常以JAR(Java Archive)格式提供。JAR文件是一个包含多个Java类和资源文件的容器,开发者可以将其引入到项目中,以便利用CXF提供的...

    apache-cxf-2.7.10

    5. **传输协议和消息格式**:CXF支持多种传输协议,如HTTP、HTTPS、JMS等,并且可以处理多种消息格式,如XML、JSON等,提供灵活性以适应不同的应用场景。 6. **安全特性**:CXF提供了WS-Security(Web Services ...

    最新apache-cxf-3.2.7

    - **RESTful服务**:通过JAX-RS,CXF可以轻松创建和消费RESTful服务,支持JSON和XML数据格式。 - **WSDL第一**:开发者可以基于WSDL文件生成Java代码,也可以从Java类生成WSDL。 - **数据绑定**:CXF支持JAXB...

Global site tag (gtag.js) - Google Analytics