One more update .... I think it is a bug in WSDL2Java .... here is what I found
delpoy.wsdd: ========================================= <beanMapping xmlns:ns="urn:SchedServer" qname="ns:Ident" languageSpecificType="java:com.solutionsquare.sched.data.Ident" /> ========================================= ?wsdl ========================================= <wsdl:definitions targetNamespace="http://localhost:8180/axis/services/SchedServer"> <!-- WSDL created by Apache Axis version: 1.2beta Built on Mar 31, 2004 (12:47:03 EST) --> <wsdl:types> <schema targetNamespace="urn:SchedServer"> ========================================= but ... in generated Ident.java i found THIS typeDesc.setXmlType(new javax.xml.namespace.QName("http://data.sched.solutionsquare.com", "Ident")); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ so I changed deploy.wsdd to <beanMapping xmlns:ns="http://data.sched.solutionsquare.com" qname="ns:Ident" languageSpecificType="java:com.solutionsquare.sched.data.Ident" /> and it WORKED ! so where is inconsistency/bug somewhere ....... thanks, Tomas > Update: > > I made it work, but that is not how I want to do it. > Server side beans are just data + setter and getter. Once I copied beans > from client side, which were generated by WSDL2Java nad have all those > additional get De/Serializer methods everything started working. > > Can I somehow make server side beans work with simple beans. I do not want > to write wsdl and generate beans out of it to make things work. > > thanks, > Tomas > >> Long Story short: >> >> Axis 1.2 beta.... could not invoje java-rpc with copmplex type as >> parameter. >> >> 1. Server side one service taking in a custom object as a paramater - >> Ident >> 2. client stub generated from wsdl. >> 3. Using tcpmon I see that server is not able to deserialize this >> object. >> >> I am missing something obvoius .. for 4 hours already :( >> >> the class on the server is >> -------------------------------------------------------------- >> ..... snip...... >> >> public class Ident implements Serializable >> { >> >> private String company; >> private String usename; >> private String password; >> >> >> .... snip...... >> all get and set methods are present, nothing else .... >> -------------------------------------------------------------- >> >> >> deploy.wsdd >> -------------------------------------------------------------- >> <deployment xmlns="http://xml.apache.org/axis/wsdd/" >> xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> >> <service name="SchedServer" provider="java:RPC"> >> <parameter name="className" >> value="com.solutionsquare.sched.server.SchedServer"/> >> <parameter name="allowedMethods" value="*"/> >> <parameter name="scope" value="Application"/> >> </service> >> >> <beanMapping xmlns:ns="urn:BeanService" qname="ns:Ident" >> languageSpecificType="java:com.solutionsquare.sched.data.Ident" /> >> >> </deployment> >> >> -------------------------------------------------------------- >> >> >> service method: >> public Customer getCustomer(com.solutionsquare.sched.data.Ident ident, >> java.lang.String id) throws java.rmi.RemoteException; >> >> >> TCPMON: >> HTTP/1.1 500 Internal Server Error? >> Content-Type: text/xml;charset=utf-8? >> Date: Thu, 24 Jun 2004 15:10:49 GMT? >> Server: Apache-Coyote/1.1? >> Connection: close? >> ? >> <?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> >> <soapenv:Fault> >> <faultcode>soapenv:Server.userException</faultcode> >> <faultstring>org.xml.sax.SAXException: Deserializing parameter >> 'ident': >> could not find deserializer for type >> {http://data.sched.solutionsquare.com}Ident</faultstring> >> <detail/> >> </soapenv:Fault> >> </soapenv:Body> >> </soapenv:Envelope> >> >> Client: >> >> SchedServerService schedService = new SchedServerServiceLocator(); >> URL serviceURL = new >> URL("http://localhost:8181/axis/services/SchedServer"); >> Customer cust1 = null; >> >> cust1 = schedService.getSchedServer(serviceURL).getCustomer(new Ident(), >> "1"); >> >> >> >> > >
