Yes, that should work.  

That said, it looks like you are not using CXF.   The error message shows 
that it's XFire on the server, not CXF.   Thus, this issue shoud be 
raised on the XFire lists at codehaus.  Or, better yet, migrate your 
application to CXF.  :-)

Dan


On Friday 14 March 2008, Joe Sunday wrote:
> Sorry if this is obvious, but is there a way to make a method argument
> optional from an exported interface?
>
> public interface MyInterface {
>      @WebMethod(operationName="optionalTest")
>      public String optionalTest(@WebParam(name="required") String
> required,
>          @WebParam(name="optional") String optional);
> }
>
> If a client sends this, it works:
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ "
> xmlns:csm="http://www.test.com/service";>
>     <soapenv:Header/>
>     <soapenv:Body>
>        <csm:optionalTest>
>           <csm:required>Value1</csm:required>
>           <csm:optional></csm:optional>
>        </csm:optionalTest>
>     </soapenv:Body>
> </soapenv:Envelope>
>
> But if they send this (which I want / need to allow for various
> reasons), I get a fault:
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ "
> xmlns:csm="http://www.test.com/service";>
>     <soapenv:Header/>
>     <soapenv:Body>
>        <csm:optionalTest>
>           <csm:required>Value1</csm:required>
>        </csm:optionalTest>
>     </soapenv:Body>
> </soapenv:Envelope>
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance ">
>     <soap:Body>
>        <soap:Fault>
>           <faultcode>soap:Client</faultcode>
>           <faultstring>Not enough message parts were received for the
> operation.</faultstring>
>        </soap:Fault>
>     </soap:Body>
> </soap:Envelope>



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to