Hi, Dave!

Did you generate the client with WSDL2Java or write it on your own? If 
generated you have to run WSDL2Java after changing the WSDL. If self-made you 
have to change the style to document in your code.

Best regards,

--
Günter Grossberger
Consultant             Tel: +43 1 329 50 161
Software AG Austria    Fax: +43 1 329 50 171
Guglgasse 7-9          GSM: +43 676 833 29 261
1030 Wien              http://www.softwareag.com/austria
 

> -----Original Message-----
> From: Dave Belfer-Shevett [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, September 21, 2005 6:04 PM
> To: [email protected]
> Subject: Newbie problem moving to 'document' style requests. Help!
> 
> 
> Alas, I'm having all sorts of problems out of the starting block.  To
> start, my sample application works fine.  My service is:
> 
> package com.arete.Webservices;
> 
> public class Sample {
>         public String echoString(String what) {
>                 return what;
>         }
> }
> 
> I compile that and distribute it as a WAR file, the only warning I get
> from JBoss (which I assume I can ignore) is:
> 
> 11:51:00,269 ERROR [EngineConfigurationFactoryServlet] Unable to find
> config file.  Creating new servlet engine config
> file: /WEB-INF/server-config.wsdd
> 
> Anyway - I whip up a WSDL file, looking like this:
> 
> <deployment xmlns="http://xml.apache.org/axis/wsdd/";
>     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
>         <service name="Sample" provider="java:RPC">
>                 <parameter name="className"
> value="com.arete.Webservices.Sample"/>
>                 <parameter name="allowedMethods" value="*"/>
>         </service>
> </deployment>
> 
> So far so good.  I use the Adminclient to punch that out to 
> axis.  Works
> great.  I can get the WSDL from the server
> (http://localhost:8080/axis/services/Sample?wsdl) and I can invoke the
> class (http://localhost:8080/axis/services/Sample?method=echoString).
> My sample SOAP client connects and runs the method fine.  Code snippet
> from teh SOAP client:
> 
>       String endpoint = "http://localhost:9080/axis/services/Sample";;
>       Service  service = new Service();
>       Call     call    = (Call) service.createCall();
> 
>       System.out.println("Pinging 'Sample' webservice method
> 'echoResponse'...");
>       call.setTargetEndpointAddress( new java.net.URL(endpoint) );
>       call.setOperationName(new QName("echoString"));
>       System.out.println("invoking...");
>       String ret = (String) call.invoke( new Object[] { new
> String("Hello!") } );
>       System.out.println("Sent 'Hello!', got '" + ret + "'");
> 
> 
> But, this is very simple encoding.  I'll need to pass more than just
> primitives around, so I change my WSDL 'service' line to:
> 
>         <service name="Sample" style="document" provider="java:RPC">
> 
> Punch that back out with adminclient, and now when I try to call the
> service from the above client, I get an exception:
> 
> org.xml.sax.SAXException: SimpleDeserializer encountered a child
> element, which is NOT expected, in something it was trying to
> deserialize.
>         at
> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFault
> Builder.java:221)
>         at
> org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultB
> uilder.java:128)
> 
> The SOAP envelope being sent to the server looks like this 
> (according to
> tcpmon)
> 
> <?xml version="1.0" encoding="UTF-8"?>
>    <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>       <soapenv:Body>
>          <echoString
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
>             <arg0 xsi:type="soapenc:string"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>Hell
> o!</arg0>
>          </echoString>
>       </soapenv:Body>
>    </soapenv:Envelope>
> 
> I'm totally stumped where to start looking here - I'm new to SOAP, so
> I'm sure I'm missing something very basic, but this has my project
> completely dead in the water.
> 
> Help please!
> -- 
> Dave Belfer-Shevett <[EMAIL PROTECTED]>
> The Homeport Collective
> 
> 

Reply via email to