SoapUI为命名空间生成JSON属性

时间:2016-04-30 19:16:06

标签: json jax-rs cxf soapui wadl

我使用CXF生成WADL,如CXF – Missing WADL method parameter element types with JSON JAX-RS services中所述。

我尝试在SoapUI中生成JSON请求体("从架构中重新创建默认表示"),但是我得到了错误的JSON,包括命名空间。

代码:

CXF配置:

<bean id="wadlGenerator" class="org.apache.cxf.jaxrs.model.wadl.WadlGenerator">
    <property name="linkJsonToXmlSchema" value="true" />
</bean>

<jaxrs:server address="/rest/1" id="test" staticSubresourceResolution="true">
    <jaxrs:serviceBeans>
        <ref bean="testResource" /> 
    </jaxrs:serviceBeans>
    <jaxrs:providers>
        <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider" />
        <ref bean="wadlGenerator" />
    </jaxrs:providers>
</jaxrs:server>

WADL:

<?xml version="1.0"?>
<application xmlns:prefix1="http://www.test.com/test" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://wadl.dev.java.net/2009/02">
    <grammars>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.test.com/test" targetNamespace="http://www.test.com/test" elementFormDefault="unqualified" attributeFormDefault="unqualified">
            <xs:import/>
            <xs:element name="testModel" type="testModel"/>
        </xs:schema>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.test.com/test" targetNamespace="http://www.test.com/test" elementFormDefault="unqualified" attributeFormDefault="unqualified">
            <xs:complexType name="testModel">
                <xs:sequence>
                    <xs:element name="id" type="xs:string"/>
                    <xs:element name="name" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
    </grammars>
    <resources base="http://localhost:8080/test-app/services/rest/1">
        <resource path="/test">
            <method name="POST">
                <request>
                    <representation mediaType="application/json" element="prefix1:testModel"/>
                </request>
                <response status="204"/>
            </method>
        </resource>
    </resources>
</application>

JSON:

{
   "@xmlns:test": "http://www.test.com/test",
   "id": "?",
   "name": "?"
}

这是SoapUI的错误/缺失功能还是我的WADL出了问题?

0 个答案:

没有答案