You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Graham Leggett (JIRA)" <ji...@apache.org> on 2014/04/17 18:38:14 UTC

[jira] [Created] (CXF-5701) wadl response with JAXB + headers generates wrong type, headers cannot be set

Graham Leggett created CXF-5701:
-----------------------------------

             Summary: wadl response with JAXB + headers generates wrong type, headers cannot be set
                 Key: CXF-5701
                 URL: https://issues.apache.org/jira/browse/CXF-5701
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 2.7.10
         Environment: Little-Net:users-api minfrin$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

            Reporter: Graham Leggett


When I run wadl2java on the following fragment of wadl, I get the API interface defined below:

{code}
       <response status="200">
         <representation mediaType="application/json" element="user:users"/>
         <representation mediaType="application/xml" element="user:users"/>
         <param name="ETag" style="header" type="xsd:string">
           <doc>The SHA1 hash of the sum of DN and modifiedTimestamp of the matching users.</doc>
         </param>
         <param name="Cache-Control" style="header" type="xsd:string">
           <doc>The Cache-Control header as specified through configuration in context.xml.</doc>
         </param>
         <param name="Vary" style="header" type="xsd:string">
           <doc>MUST have the value "Authorization", as we vary on the Authorization header.</doc>
         </param>
         <doc>Return list of users.  Must have admin role to receive the response. 
              Note: no users = empty list with status:200</doc>
       </response>
{code}

{code}
   @GET
   @Produces({"application/json", "application/xml" })
   Users getUsers(@QueryParam("page") Long page, @QueryParam("pageSize") Long pageSize, @QueryParam("sort") String sort, @QueryParam("fl") String fl, 
               @HeaderParam("If-None-Match") String If_None_Match, @HeaderParam("Authorization") String Authorization);
{code}

The problem with the interface that is being produced above is that we return a JAXB Users object, with no mechanism to return any of the ETag, Cache-Control or Vary headers as required by the wadl.

To maintain backwards compatibility we need an option to send the correct response based on whether headers are present or not.




--
This message was sent by Atlassian JIRA
(v6.2#6252)