I'm new to the list, and to Web Services (in a grad class for it), so let me first say howdy!
I'm getting error when trying to run some client code. I'm using two types of clients, one using the low level API's and one that uses the stub code generated with WSDL2Java. My current environment is: Java 1.4.1 SDK J2EE 1.3.1 SDK Axis 1.0 Tomcat 4.0.4 Ant 1.5 My web service interface is as follows: import data.Ad ; public interface AdWS { public boolean placeAd( Ad ad ) ; public Ad[] searchAds( Ad ad ) ; } My deploy.wsdd looks like: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="AdWebService" provider="java:RPC"> <parameter name="className" value="AdWSImpl"/> <parameter name="allowedMethods" value="placeAd"/> <beanMapping qname="AdNS:Ad" xmlns:AdNS="urn:AdWS" languageSpecificType="java:Ad"/> </service> </deployment> My build.xml has the following for generating my stubs: <target name="ad.stubs"> <java classname="org.apache.axis.wsdl.WSDL2Java" fork="yes"> <arg value="-o"/> <arg value="."/> <arg value="./conf/AdWebService.wsdl"/> <classpath> <path refid="axis.libraries"/> </classpath> </java> </target> The service deploys fine without errors. My client code utilizing the API's looks like: import org.apache.axis.AxisFault; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.utils.Options; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import data.Ad ; public class LowClient { public static void main(String [] args) throws Exception { String[][] keys = { {"Seller","Jason Adam"}, {"State","CO"}, {"Breed","Appaloosa"}, {"Name","Pearl"}, {"Price","N/A"}, {"Ad","Test AD"} }; Options options = new Options(args); Service service = new Service(); Call call = (Call) service.createCall(); Ad ad = new Ad(); ad.setCategory( "Horse" ); ad.setKeywords( keys ); QName qn = new QName( "urn:AdWS", "Ad" ); call.registerTypeMapping(Ad.class, qn, new org.apache.axis.encoding.ser.BeanSerializerFactory(Ad.class, qn), new org.apache.axis.encoding.ser.BeanDeserializerFactory(Ad.class, qn)); try { call.setTargetEndpointAddress( new java.net.URL(options.getURL()) ); call.setOperationName( new QName("AdWebService", "placeAd") ); call.addParameter( "arg1", qn, ParameterMode.IN ); call.setReturnClass( Boolean.class ); call.setReturnType( qn , Boolean.class ); boolean ret = ( (Boolean)call.invoke( new Object [] { ad }) ).booleanValue(); System.out.println("Result : " + ret); } catch (AxisFault fault) { System.out.println( "Error : " + fault.toString()); } } } If I use this client, I get the following error: lowclient.run: [java] Error : org.xml.sax.SAXException: Deserializing parameter 'arg1': could not find deserializer for type {urn:AdWS}Ad My client using the stub stuff is: public class Client { public static void main(String [] args) throws Exception { System.out.println( "Test" ); System.out.println( "In Client" ); String[][] keys = { {"Seller","Jason Adam"}, {"State","CO"}, {"Breed","Appaloosa"}, {"Name","Pearl"}, {"Price","N/A"}, {"Ad","Test AD"} }; System.out.println( "Creating locator" ); localhost.AdWSImplServiceLocator locator = new localhost.AdWSImplServiceLocator(); System.out.println( "Locator received: " + locator ); localhost.AdWSImpl aws =locator.getAdWebService(); System.out.println( "AWS received: " + aws ); data.Ad ad = new data.Ad(); ad.setCategory("Horse"); ad.setKeywords( keys ); System.out.println( "Ad created and set" ); boolean result = aws.placeAd( ad ); System.out.println( "Ad placed" ); if( result ) { System.out.println( "Success!" ); } else { System.out.println( "Failure" ); } } } And I get the following error using that client: client.run: [java] Test [java] In Client [java] Creating locator [java] Locator received: localhost.AdWSImplServiceLocator@e87719 [java] AWS received: localhost.AdWebServiceSoapBindingStub@b48197 [java] Ad created and set [java] AxisFault [java] faultCode: {http://xml.apache.org/axis/}Server.userException [java] faultString: org.xml.sax.SAXException: Deserializing parameter 'in0 ': could not find deserializer for type {http://data}Ad [java] faultActor: null [java] faultDetail: [java] stackTrace: org.xml.sax.SAXException: Deserializing parameter 'i n0': could not find deserializer for type {http://data}Ad [java] at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.ja va:276) [java] at org.apache.axis.encoding.DeserializationContextImpl.startElem ent(DeserializationContextImpl.java:893) [java] at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRec order.java:200) [java] at org.apache.axis.message.MessageElement.publishToHandler(Messa geElement.java:684) [java] at org.apache.axis.message.RPCElement.deserialize(RPCElement.jav a:207) [java] at org.apache.axis.message.RPCElement.getParams(RPCElement.java: 265) [java] at org.apache.axis.providers.java.RPCProvider.processMessage(RPC Provider.java:190) [java] at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvid er.java:276) [java] at org.apache.axis.strategies.InvocationStrategy.visit(Invocatio nStrategy.java:71) [java] at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156) [java] at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126) [java] at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService. java:437) [java] at org.apache.axis.server.AxisServer.invoke(AxisServer.java:316) [java] at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet .java:701) [java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) [java] at org.apache.axis.transport.http.AxisServletBase.service(AxisSe rvletBase.java:335) [java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) [java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFil ter(ApplicationFilterChain.java:247) [java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(Appl icationFilterChain.java:193) [java] at org.apache.catalina.core.StandardWrapperValve.invoke(Standard WrapperValve.java:243) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:566) [java] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipe line.java:472) [java] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.j ava:943) [java] at org.apache.catalina.core.StandardContextValve.invoke(Standard ContextValve.java:190) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:566) [java] at org.apache.catalina.valves.CertificatesValve.invoke(Certifica tesValve.java:246) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:564) [java] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipe line.java:472) [java] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.j ava:943) [java] at org.apache.catalina.core.StandardContext.invoke(StandardConte xt.java:2347) [java] at org.apache.catalina.core.StandardHostValve.invoke(StandardHos tValve.java:180) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:566) [java] at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorD ispatcherValve.java:170) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:564) [java] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepor tValve.java:170) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:564) [java] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVal ve.java:468) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:564) [java] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipe line.java:472) [java] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.j ava:943) [java] at org.apache.catalina.core.StandardEngineValve.invoke(StandardE ngineValve.java:174) [java] at org.apache.catalina.core.StandardPipeline.invokeNext(Standard Pipeline.java:566) [java] at org.apache.catalina.core.StandardPipeline.invoke(StandardPipe line.java:472) [java] at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.j ava:943) [java] at org.apache.catalina.connector.http.HttpProcessor.process(Http Processor.java:1027) [java] at org.apache.catalina.connector.http.HttpProcessor.run(HttpProc essor.java:1125) [java] at java.lang.Thread.run(Thread.java:536) [java] org.xml.sax.SAXException: Deserializing parameter 'in0': could not find deserializer for type {http://data}Ad [java] at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFault Builder.java:135) [java] at org.apache.axis.encoding.DeserializationContextImpl.endElemen t(DeserializationContextImpl.java:942) [java] at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java :1403) [java] at org.apache.xerces.validators.common.XMLValidator.callEndEleme nt(XMLValidator.java:1550) [java] at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatc her.dispatch(XMLDocumentScanner.java:1204) [java] at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLD ocumentScanner.java:381) [java] at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:10 98) [java] at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) [java] at org.apache.axis.encoding.DeserializationContextImpl.parse(Des erializationContextImpl.java:232) [java] at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:546) [java] at org.apache.axis.Message.getSOAPEnvelope(Message.java:377) [java] at org.apache.axis.client.Call.invokeEngine(Call.java:2132) [java] at org.apache.axis.client.Call.invoke(Call.java:2102) [java] at org.apache.axis.client.Call.invoke(Call.java:1851) [java] at org.apache.axis.client.Call.invoke(Call.java:1777) [java] at org.apache.axis.client.Call.invoke(Call.java:1315) [java] at localhost.AdWebServiceSoapBindingStub.placeAd(Unknown Source) [java] at Client.main(Unknown Source) [java] Exception in thread "main" [java] Java Result: 1 The errors look like the same issue is occuring, though I'm not sure why one generates a different format for the data type that can't be deserialized. Any ideas where the problem is occuring? Any help is appreciated, and I apologize for all the extra code and stuff, wanted to make sure I presented everything that may be of value. Let me know if you need some other info. Thanks! Jason "There are only 10 types of people in this world -- those that understand binary and those that don't" -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>