2016-08-19 1 views
0

J'ai un service CXF (2.5.2) qui consume objet JSON et produit objet JSON comme ci-dessousCXF WADL détails manquants pour les objets complexes

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

WADL généré par CXF pour le service ci-dessus est comme suit:

<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> 

fichier ci-dessus WADL: -

  1. ne donne pas de détails pour quel objet utilisateur est en s grammaires exion

  2. ressource ne précise pas cette méthode nécessite un objet utilisateur dans la requête charge utile

Comment puis-je ajouter ces choses qui manquent au fichier WADL?

Merci.

Répondre

0

Vous devez ajouter le WadlGenerator CxF en tant que fournisseur dans votre fichier Plan:

<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>