关于CXF JSonProvider

2024-05-26 16:32
文章标签 cxf jsonprovider

本文主要是介绍关于CXF JSonProvider,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CXF通过JSonProvider对JSon提供支持,默认的Provider采用jettsion进行编码或解码。
无论是服务端还是客户端,CXF都可以通过配置JSonProvider来配置Json的格式。
比如服务器端
Java代码 :
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider"> 
        <property name="dropRootElement" value="true"/> 
        <property name="dropCollectionWrapperElement" value="true"/> 
        <property name="serializeAsArray" value="true"/> 
</bean> 
        
<jaxrs:server id="customerService" address="/service1"> 
    <jaxrs:serviceBeans> 
      <ref bean="customerBean" /> 
    </jaxrs:serviceBeans> 
    <jaxrs:providers> 
            <ref bean="jsonProvider"/> 
    </jaxrs:providers> 
  </jaxrs:server> 
 
需要说明的而是,JsonProvider的属性 dropRootElement 默认为false,则Json格式会将类名作为第一个节点,如
{Customer:{"id":123,"name":"John"}},如果配置为true,则Json格式为{"id":123,"name":"John"},而Gson等Json包会解析格式为后者。
而dropCollectionWrapperElement属性默认为false,则当遇到Collection时,Json会在集合中将容器中类名作为一个节点,比如{"Customer":{{"id":123,"name":"John"}}},而设置为false,则JSon格式为{{"id":123,"name":"John"}}
而serializeAsArray属性默认为false,则当遇到Collecion时,格式为{{"id":123,"name":"John"}},如果设置为true,则格式为[{"id":123,"name":"john"}],而Gson等解析为后者。
 
而对于CXF Client端,同样设置JSonProvider,可用spring,也可直接编码
Java代码 :
JSONProvider myJsonProvider = new JSONProvider(); 
                        myJsonProvider.setDropRootElement(true); 
                        myJsonProvider.setSupportUnwrapped(true); 
                        myJsonProvider.setSerializeAsArray(true); 
                        List<JSONProvider> providers = new ArrayList<JSONProvider>(); 
                        providers.add(myJsonProvider); 
                        WebClient client = WebClient.create("http://10.148.11.102:8080/testCXFServer",providers); 

这篇关于关于CXF JSonProvider的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004993

相关文章

Java中WebService接口的生成、打包成.exe、设置成Windows服务、及其调用、Apache CXF调用

一、Java中WebService接口的生成: 1、在eclipse工具中新建一个普通的JAVA项目,新建一个java类:JwsServiceHello.java package com.accord.ws;import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.ws.Endpoint;/*** Ti

Spring之整合Apache CXF框架实现WebServices远程调用

基于Spring实现WebSerivces远程调用.底层基于soap传输协议,wsdl对象描述规范 依赖的jar包, cxf版本:apache-cxf-2.7.17 1.配置: applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.or

随手记(1)-cxf和xercesImpl.jar冲突

JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();  Client client = clientFactory.createClient(url);   result = client.invoke("methodName", condition); 在使用CXF框架调用远端

使用CXF开发WebService程序

1、CXF是什么 cxf是一个开源框架,实现webservice开发,它支持多种协议,比如:SOAP1.1,1,2、XML/HTTP、RESTful HTTP 或者 CORBA。 cxf开发的webservice可以通过tomcat运行,cxf开发的webservice服务接口可以和javaweb应用程序部署在一块儿,共同使用一个端口80。 cxf基于SOA面向服务架构理念。依

WebService如何设置基于cxf的wsdl2java生成的客户端超时

基于cxf 3.1.10版本 import org.apache.cxf.bus.spring.SpringBus;import org.apache.cxf.policy.PolicyDataEngine;@Bean(name = Bus.DEFAULT_BUS_ID)public SpringBus springBus() {SpringBus springBus = new Sprin

一、使用cxf的JaxWsServerFactoryBean创建webservice的服务端和客户端

A。创建服务端 配置文件: import com.enn.cn.util.PropertiesUtil;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;/*** Created by Administrator on 2017/10/30.*/public class ExecServer {public static voi

springboot学习(二十四) springboot整合cxf jaxrs发布webservice使用JSON并调用

例子github地址:https://github.com/zhuquanwen/webservice-demo 其中的cxf模块 1、依赖 我使用的是gradle,使用maven转为对应的pom.xml就好 plugins {id 'java'}group 'com.zqw.test.client'sourceCompatibility = 1.8repositories {maven {

springboot学习(二十三)springboot整合cxf jaxws 发布webservice并调用

例子github地址:https://github.com/zhuquanwen/webservice-demo 其中的cxf模块 1、依赖引入 我使用的是gradle,使用maven转为对应的pom.xml就好 plugins {id 'java'}group 'com.zqw.test'version '1.0-SNAPSHOT'sourceCompatibility = 1.8rep

基于Spring + CXF框架的Web Service

1、用CXF编写基于Spring的Web service,也是需要分为Server服务器端、Client客户端的。   1.1)、Server端,操作步骤,如下所示:     第一步,创建spring的配置文件beans.xml,在其中配置SEI。    第二步,在web.xml中,配置上CXF的一些核心组件。   1.2、Client端,操作步骤,如下所示:     第一步,生成客户端代码。

CXF 实现webservice

1.jar cxf 2.2.6.jar  ...... 2. web.xml  <?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta