This how we implemented message style service :
Service code :
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public Element[] validate(Element [] input) throws ValidationException {
if(input == null || input.length == 0) {
throw new ValidationException("No message found");
}
try {
// process input ....
Element[] output = new Element[1];
DocumentBuilder builder =
DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.newDocument();
// build response xml document...
output[0] = doc.getDocumentElement();
return output;
} catch (ValidationException ave) {
throw ave;
} catch (Exception e) {
throw new ValidationException("Error occured during
Validation",e);
} catch (Throwable t) {
return null;
}
}
Client code :
public Address validate(Address address) throws ValidationException {
try {
Service service = new Service();
Call call = (Call)service.createCall(new QName("",""));
call.setTargetEndpointAddress( new
URL((String)_hmProperties.get(this.ENDPOINT_ADDRESS_PROPERTY)) );
SOAPBodyElement[] input = new SOAPBodyElement[1];
DocumentBuilder builder =
DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.newDocument();
// build request xml ....
input[0] = new SOAPBodyElement(doc.getDocumentElement());
Vector output = (Vector)call.invoke(input);
if(output == null || output.isEmpty()) {
throw new ValidationException("No response message found");
}
//get info from output and process to create return address
object
//((SOAPBodyElement)output.get(0)).getAsDOM();
return address;
} catch (ValidationException pe) {
throw pe;
} catch (Exception e) {
throw new ValidationException("Error occured while validating
address",e);
}
}
deploy.wsdd code :
<deployment name="test" 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">
<service name="AddressValidationService" style="message">
<parameter name="className" value="com.abc.xyz.AddressValidationService"
/>
<parameter name="allowedMethods" value="*" />
</service>
</deployment>
Hope that helps :
Ashish.
> -----Original Message-----
> From: Volkmann, Mark [SMTP:[EMAIL PROTECTED]
> Sent: Tuesday, July 01, 2003 8: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.
> **************************************************************************
> **********
>