That's odd... it should definitely generate the (String, String)
signature. Lenni Madsen submitted a similar example yesterday and that
worked - perhaps you can send some more of the WSDL so I can see if there
are any errors in the <message> or <operation> elements? Also, is 'xs'
mapped to the XSD namespace? I ask because all of the sample WSDLs use
'xsd', and if you built off of those, you might have just used the wrong
prefix (which means the wrong namespace, which means it's not a built-in
schema type).
As far as multiple return values go, you're probably best of switching
Element to Object[], and then modifying the generated client code to look
like this:
Object[] myOperation()
throws SoapFault
{
Element[] body = new Element[] { soapBody };
Element[] response = getSoapClient().send(getSource(),
getDestination(), action, body, extraHeaders);
if (response.length == 0)
return null;
//
// if you want to convert Element -> POJO, here's where you can do
it
//
return response;
}
I copied this code from AbstractResourceClient.invoke() - given that we
don't handle multiple return values well in the client API, it's the
easiest way to do it.
Dan
"Vinh Nguyen \(vinguye2\)" <[EMAIL PROTECTED]> wrote on 03/09/2007
04:11:04 AM:
> Hi all,
> Perhaps I've been working too hard lately that I'm getting confused
> again:)
>
> Suppose I have a wsdl with the following operation messages:
> <xs:element name="Get">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Name" type="xs:string"></xs:element>
> <xs:element name="Value" type="xs:string"></xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="GetResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="wsa:EndpointReference" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> Muse generates this capability method:
> public Element get(Element arg0, Element arg1)
>
> I can then update it to:
> public EndpointReference get(String name, String value)
>
> But now, I am trying to implement a WS-Enumeration operation with this
> wsdl definition:
> <xs:element name="Enumerate">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="EndTo" type="wsa:EndpointReferenceType"
> minOccurs="0"/>
> <xs:element name="Expires" type="tns:ExpirationType"
> minOccurs="0"/>
> <xs:element name="Filter" type="tns:FilterType" minOccurs="0"/>
> <xs:any namespace="##other" processContents="lax" minOccurs="0"
> maxOccurs="unbounded"/>
> </xs:sequence>
> <xs:anyAttribute namespace="##other" processContents="lax"/>
> </xs:complexType>
> </xs:element>
> <xs:element name="EnumerateResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Expires" type="tns:ExpirationType"
> minOccurs="0"/>
> <xs:element name="EnumerationContext"
> type="tns:EnumerationContextType"/>
> <xs:any namespace="##other" processContents="lax"
> minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> <xs:anyAttribute namespace="##other" processContents="lax"/>
> </xs:complexType>
> </xs:element>
>
> Muse generates this capability method:
> public Element enumerateOp(Element arg0, Element arg1, Element arg2)
>
> If I want to update this signature to not use the Element type, what
> would I change it to? Would the return value be an Object[]?
>
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]