Hi all,
If anyone know how to implement an Axis Message-Style service that has multiple operations, please share me your experience.
E.g, the sample Message-style service from the Axis pack, has the following WSDD:
<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">
<!-- note that either style="message" OR provider="java:MSG" both work -->
<service name="MessageService" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="echoElements" />
</service>
<service name="MessageService2" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="process" />
</service>
</deployment>
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
<!-- note that either style="message" OR provider="java:MSG" both work -->
<service name="MessageService" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="echoElements" />
</service>
<service name="MessageService2" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="process" />
</service>
</deployment>
With this WSDD, I need two wsdl files to publish the service, because the soap locations are different:
I have tried to change the interface to:
<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">
<!-- note that either style="message" OR provider="java:MSG" both work -->
<service name="MessageService" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="echoElements, process" />
</service>
</deployment>
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
<!-- note that either style="message" OR provider="java:MSG" both work -->
<service name="MessageService" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="echoElements, process" />
</service>
</deployment>
With that, I can use one wsdl file to publish the service, but then I have problem with the Axis service. From the client, I tried many solution to invoke the service's operation, but always received exception from the Axis server:
.....
[java] AxisFault
[java] faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
[java] faultSubcode:
[java] faultString: Couldn't find an appropriate operation for XML QName {urn:foo}e1
[java] faultActor:
[java] faultNode:
[java] faultDetail:
[java] {http://xml.apache.org/axis/}hostname:h-pctnn
[java] faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
[java] faultSubcode:
[java] faultString: Couldn't find an appropriate operation for XML QName {urn:foo}e1
[java] faultActor:
[java] faultNode:
[java] faultDetail:
[java] {http://xml.apache.org/axis/}hostname:h-pctnn
Exception:
......
If somebody know how to solve the problem, please help me.
Thank you very much!
The Hoa
Start your day with Yahoo! - make it your home page