Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2作为如何定制json提供程序_Json_Xml_Wso2_Cxf_Wso2as - Fatal编程技术网

WSO2作为如何定制json提供程序

WSO2作为如何定制json提供程序,json,xml,wso2,cxf,wso2as,Json,Xml,Wso2,Cxf,Wso2as,我有一个由wso2 Studio创建的JAX-RS Web应用程序。在我的应用程序中,我生成一个json响应。JSON提供程序应该包含在cfx库中。 从cfx文档中,我了解到我可以为JSON输出中的delete RootElement个性化提供程序 按照我在cfx-servelt.xml中添加这个bean的文档进行操作 <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider"> <property nam

我有一个由wso2 Studio创建的JAX-RS Web应用程序。在我的应用程序中,我生成一个json响应。JSON提供程序应该包含在cfx库中。 从cfx文档中,我了解到我可以为JSON输出中的delete RootElement个性化提供程序

按照我在cfx-servelt.xml中添加这个bean的文档进行操作

<bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
    <property name="dropRootElement" value="true"/>
    <property name="dropCollectionWrapperElement" value="true"/>
    <property name="serializeAsArray" value="true"/>
    <property name="supportUnwrapped" value="true"/>
</bean>

不幸的是,没有删除根元素,也没有生成错误。错误在哪里


谢谢大家!

我正在使用WSO2 Developer Studio 3.8.0和WSO2 AS 5.2.1。这是我的cxf-servlet.xml,它按预期工作:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
    <bean  id="MyServiceBean" class="my.service.class"/>
    <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
        <property name="dropRootElement" value="true"/>
        <property name="supportUnwrapped" value="true"/>
    </bean>
    <jaxrs:server id="MyService" address="/myServiceURL">
        <jaxrs:serviceBeans>
            <ref  bean="MyServiceBean"/>
        </jaxrs:serviceBeans>

        <jaxrs:providers>
            <ref bean="jsonProvider" />
        </jaxrs:providers>
    </jaxrs:server>
</beans>
并且,正如预期的那样,返回的JSON被展开:

{"exists":true,"success":true}
对于任何JSON输入参数都是相同的,例如:

{
  "username": "user",
  "serviceProvider": "sp"
}
我认为dropRootElement属性管理返回参数,supportUnwrapped属性管理输入参数

{
  "username": "user",
  "serviceProvider": "sp"
}