I think the only way to do that would be to do something like:

@WebMethod
@WebResult(name = "resultCode")
public int deleteNetwork(
         @WebParam(name = "token") String token,
         @WebParam(name = "id") int id,
         @WebParam(name = "resultDescription", mode=OUT) 
                     Holder<String> description);

Alternatively, switch to BARE mode and do

@WebMethod
public DeleteNetworkResponse deleteNetwork(DeleteNetwork req);

with the DeleteNetworkResponse/DeleteNetwork being beans that would wrapper 
the appropriate in and out parts.

Dan




On Wed December 2 2009 6:43:43 am Harm Verhagen wrote:
> Hi,
> 
> When using CXF to construct a webservice  I see that my response xml always
> gets an extra wrapper layer.
> It always gets an extra   <return>   ... </return>   in the soap responses.
> 
> *
> 
> 
> Actual soap response.*
> 
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soap:Body>
>       <ns1:deleteNetworkResponse xmlns:ns1="http://test.com/ble";>
>          <return>
>             <resultCode>-514</resultCode>
>             <resultDescription>Not found</resultDescription>
>          </return>
>       </ns1:deleteNetworkResponse>
>    </soap:Body>
> </soap:Envelope
> 
> 
> *Expected response*
> **
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soap:Body>
>       <ns1:deleteNetworkResponse xmlns:ns1="http://test.com/ble";>
>             <resultCode>-514</resultCode>
>             <resultDescription>Not found</resultDescription>
>       </ns1:deleteNetworkResponse>
>    </soap:Body>
> </soap:Envelope
> 
> *java code*
> 
> @WebService( targetNamespace = "http://test.com/ble";)
> public interface NetworkAdmin {
> 
> ...
> ...
> 
> @WebMethod
>     public generalResult deleteNetwork(
>             @WebParam(name = "token") String token,
>             @WebParam(name = "id") int id);
> 
> 
> 
> }
> 
> where
> public class generalResult {
> 
>     protected int resultCode;
>     protected String resultDescription;
> 
>    //+ getters/setters
> }
> 
> 
> I found no way to disable this.
> Adding @ResponseWrapper  with no localname didn.t help -> still  <return>
> ... </return>
> Adding @ResponseWrapper(localName = "deleteNetworkResponse")  didnt' help
>  -> still  <return> ... </return>
> *
> *
> What is going on here ?
> Does anyone know how to get the expected response ?
> 
> 
> Regards,
> Harm Verhagen
> 

-- 
Daniel Kulp
[email protected]
http://www.dankulp.com/blog

Reply via email to