CXF WADL 缺少复杂对象的详细信息

Posted

技术标签:

【中文标题】CXF WADL 缺少复杂对象的详细信息【英文标题】:CXF WADL missing details for complex objects 【发布时间】:2016-08-19 15:03:48 【问题描述】:

我有一个 CXF 服务 (2.5.2),它使用 JSON 对象并生成如下所示的 JSON 对象

@POST
@Produces("application/json")
@Consumes("application/json")
public AResponseObject register(@PathParam("param1") String param1, User user) 
//

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>

WADL 文件上方:-

    没有详细说明语法部分中的用户对象是什么

    resource 未指定该方法在请求中需要 User 对象 有效载荷

如何将这些缺失的内容添加到 WADL 文件中?

谢谢。

【问题讨论】:

【参考方案1】:

您需要在蓝图文件中添加 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>

【讨论】:

以上是关于CXF WADL 缺少复杂对象的详细信息的主要内容,如果未能解决你的问题,请参考以下文章

缺少发布健康详细信息和发布健康概览小部件

我缺少啥来启用从自定义适配器到 ListView 的详细信息传输?

Rmarkdown中的插入符号doparallel:使用render()时缺少详细信息

部署到 Firebase 云功能时出错 - ?缺少配置详细信息

缺少对 HTTP-OPTION 的回答的详细信息

解决 U2000 R017 安装报错: 检查SQL server数据库环境变量信息 ( 异常 ) [ 详细信息 ] PATH环境变量中缺少数据库路径的信息