[英]CXF WADL missing details for complex objects
I have a CXF service (2.5.2) which consumes JSON object and produces JSON object like below 我有一个CXF服务(2.5.2),它使用JSON对象并生成JSON对象,如下所示
@POST
@Produces({"application/json"})
@Consumes({"application/json"})
public AResponseObject register(@PathParam("param1") String param1, User user) {
//
}
WADL generated by CXF for above service is as following: CXF为上述服务生成的WADL如下:
<application xmlns="http://wadl.dev.java.net/2009/02" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<script id="tinyhippos-injected"/>
<grammars/>
<resources base="http://host/...">
<resource path="/register/{param1}">
<param name="param1" style="template" type="xs:string"/>
<method name="POST" id="register">
<request>
<representation mediaType="application/json"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
</resources>
</application>
Above WADL file:- WADL文件上方:-
doesn't give any details for what User object is in grammars section 没有在语法部分提供有关用户对象的任何详细信息
resource doesn't specify that method requires a User object in request payload 资源未指定该方法在请求有效负载中需要User对象
How do I add these missing things to the WADL file? 如何将这些丢失的东西添加到WADL文件中?
Thanks. 谢谢。
You need to add the cxf WadlGenerator as a provider in your Blueprint file: 您需要在蓝图文件中将cxf WadlGenerator添加为提供程序:
<bean id="wadlGenerator" class="org.apache.cxf.jaxrs.model.wadl.WadlGenerator">
<property name="linkJsonToXmlSchema" value="true" />
</bean>
<jaxrs:server id="someRestService" address="/my/endpoint">
<jaxrs:serviceBeans>
<ref component-id="someRestServiceBean" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref component-id="wadlGenerator" />
<ref component-id="jsonProvider" />
</jaxrs:providers>
</jaxrs:server>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.