You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Dave Kallstrom <da...@gmail.com> on 2008/10/03 17:52:41 UTC

@XmlRootElement question

>From what I understand the default behaviour for jaxb based webservices is
to not include the name of the XmlRootElement annotation when building the
soap body but to defer to the WebResult annotation name.
For example.
Here is my SEI interface method declaration

@WebMethod(operationName = "AvailableProfiles",
action="urn:AvailableProfiles")
@WebResult(name = "UploadProfiles",
targetNamespace=WidenNamespace.WIDEN_2007_01_01, header=false)
public
List<WSUploadProfile>AvailableProfiles(@WebParam(name="AvailableProfilesSession",
header=false)WSSession session) throws CollectiveServicesException;

And here is the XmlRootElement from the WSUploadProfile class

@XmlRootElement(namespace = WidenNamespace.WIDEN_2007_01_01, name =
"AssetUploadProfile")
public class WSUploadProfile.

And here is the SOAP response

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:UploadProfiles
xmlns:ns1="http://www.widencollective.com/2007-01-01"><item
ns1:displayName="Director Upload
Profile"><ns1:expirationDate>2008-10-05T07:59:15.870-05:00</ns1:expirationDate><ns1:id>3</ns1:id><ns1:name>Director
Upload
Profile</ns1:name><ns1:releaseDate>2008-10-01T07:59:15.870-05:00</ns1:releaseDate></item></ns1:UploadProfiles></soap:Body></soap:Envelope>

Notice the <item ns1:displayName="Director Upload Profile">
I would expect this to be <AssetUploadProfile ns1:displayName="Director
Upload Profile">
And this is the way aegis bindings created the soap response.

Is there anyway to make jaxb use the XmlRootElement name attribute? Or is
there a workaround to this.

-- 
Dave Kallstrom