- to create a correct wsdd for message-style services
- to create a client
The Axis call.invoke method always receives an Object type as response no matter what the return type of the signature is, if you write a client within Axis. To 'correct' this, I write:
Document doc1 = builder.newDocument();
Element root = doc1.createElementNS("biryani.med.yale.edu","requestmsg");
SOAPBodyElement s1 = new SOAPBodyElement(root);
objResp = call.invoke(new Object[] { s1 }); // throws RemoteException
Vector vResp = (Vector) objResp;
SOAPBodyElement elemResp = (SOAPBodyElement) vResp.get(0);
Document docResp = elemResp.getAsDocument();
Note: when I use call.invoke(new Object[] { doc1 });
Axis throws
java.io.IOException: No serializer found for class org.apache.xerces.dom.DocumentImpl in registry org.apache.axis.encoding.TypeMappingImpl
In the org.apache.axis.encoding.ser package you will find a list of serializer, which contains an ElementSerializer but no DocumentSerializer. I assume this causes it, which requires you to write your own serializer as an alternative. I prefer to use the SOAPBodyElement, but haven't tested yet how it works for non-Axis/non-Java clients. I suspect this is the reason why the ELement[] and SOAPBodyElement[] weren't any problem to implement. I haven't gotten to writing my own Serializers yet....
On the serverside I simply write the methods as the signatures that are given:
public Document method1(Document doc1) throws RemoteException{return someDocument;}
The wsdd looks as follows:
<deployment name="GetXSLIM" xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
<handler name="handlerXSLIM" type="java:ws.xslim.BasicHandler_XSLIM"/>
<service name="GetXSLIM" style="message">
<requestFlow>
<handler type="handlerXSLIM"/>
</requestFlow>
<responseFlow>
<handler type="handlerXSLIM"/>
</responseFlow>
<parameter name="className" value="ws.xslim.GetXSLIM" />
<parameter name="allowedMethods" value="method1" />
<wsdlFile>/../../files/xslim/wsdl/GetXSLIM.wsdl</wsdlFile>
<!--parameter name="wsdlInputSchema" value="http://biryani.med.yale.edu:8081/axis/files/xslim/GetXSLIM_method1Request.xsd"/-->
</service>
</deployment>
Balaji Thirugnanam wrote:
RE: Creating message-style services try this link,-----Original Message-----
From: Volkmann, Mark [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 01, 2003 9:00 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Creating message-style services
I think the reason you've only seen examples of using the signature
public Element [] method(Element[] bodies)
is that the other three supposedly supported signatures don't work.
I've tried to use them without success.
I too would like to see working examples of using the other signatures.> -----Original Message-----
> From: Sachin [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 01, 2003 1:56 AM
> To: Axis userList (E-mail)
> Subject: Creating message-style services
>
>
> Hi All,
> well i have posted two problem related to XML
> Document handling via
> web Services but got no response.
>
> but After some study on net and help of some users.I am able
> to find that
> for this i have to create message-style service Axis has
> given four methods
> for it
> public Element [] method(Element [] bodies)
> public SOAPBodyElement [] method (SOAPBodyElement [] bodies)
> public Document method(Document body)
> public void method(SOAPEnvelope req, SOAPEnvelope resp)
>
> but only example of public Element [] method(Element []
> bodies) is given so
> if i have to look for more example
> then where should i go
>
> Axis Site has very little mentioning About it so more
> documentation need to
> be provided on these topics or
> Anyone can suggest me about it.
>
> Thanks
>
>
>
>
***********************************************************************************
WARNING: All e-mail sent to and from this address will be received or
otherwise recorded by the A.G. Edwards corporate e-mail system and is
subject to archival, monitoring or review by, and/or disclosure to,
someone other than the recipient.
************************************************************************************