Please post the WSDL. On 8/11/06, Richard Jones <[EMAIL PROTECTED]> wrote:
Hi Folks,I am starting to really get to grips with my web services now, with much thanks to Axis. This morning, though, I have encountered a problem which I can't work out whether is my fault (likely) or a potential problem. I have two requests defined (in the scope of this problem): public void requestFileDetails(String guid) throws ServiceException, RemoteException { // make the request SpiralTestSoapService service = getService(); SingleGUID sguid = new SingleGUID(guid); RequestFileDetailsResponse response = service.requestFileDetails(sguid); } public void articleUpdateNotification(String guid) throws ServiceException, RemoteException { // make the request SpiralTestSoapService service = getService(); SingleGUID sguid = new SingleGUID(guid); service.articleUpdateNotification(sguid); } these in turn call the relevant operations on the port type (The xxx_BindingImpl class). When either of the above methods are called in the client, the server /always/ processes the request to "requestFileDetails". I discovered that I could fix this so that it always processed the request to "articleUpdateNotification" by reversing the order that these two operations are specified in the server-config.wsdd: <operation name="articleUpdateNotification" qname="ArticleUpdateNotification" mep="oneway" > <parameter qname="pns:SingleGUID" xmlns:pns="http://[...]/SpiralWebService/" type="tns:>SingleGUID" xmlns:tns="http://[...]/SpiralWebService/"/> </operation> <operation name="requestFileDetails" qname="RequestFileDetails" returnQName="retNS:RequestFileDetailsResponse" xmlns:retNS="http://[...]/SpiralWebService/" returnType="rtns:>RequestFileDetailsResponse" xmlns:rtns="http://[...]/SpiralWebService/" > <parameter qname="pns:SingleGUID" xmlns:pns="http://[...]/SpiralWebService/" type="tns:>SingleGUID" xmlns:tns="http://[...]/SpiralWebService/"/> </operation> I upped log4j to DEBUG, and observed that the body of the request seems only to contain the data type, not the operation name: 2006-08-11 12:39:00,795 DEBUG org.apache.axis.providers.java.RPCProvider @ body is <SingleGUID xmlns="http://[...]/SpiralWebService/"><guid xmlns="">1234567890</guid></SingleGUID> The two above methods both take the SingleGUID data type as an argument, so I defined this type in the WSDL and re-used it all over the place. My current guess (and it is only a guess) is that Axis is just looking for the first operation that takes this data type, and executing it, no matter which operation it was intended for. Can anyone see what I might have done wrong? Am I misappropriating the data types and the way that axis uses them, or have I missed something in the way to call the web service, or is there something else? Any help much appreciated, Cheers -- Richard ------- Richard Jones Web and Database Technology Specialist Imperial College London t: +44 (0)20 759 41815 e: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
