You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Tomas Mazukna <to...@usermail.com> on 2004/06/24 17:33:05 UTC
could not find deserializer for type
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");
Re: could not find deserializer for type
Posted by Tomas Mazukna <to...@usermail.com>.
I had no beanmapping to start with, adding did not help.
> remove the beanmapping and try again.
>
> On Thu, 24 Jun 2004 11:33:05 -0400 (EDT), Tomas Mazukna
> <to...@usermail.com> wrote:
>> 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");
>>
>>
>
>
> --
> Davanum Srinivas - http://webservices.apache.org/~dims/
>
>
Re: could not find deserializer for type
Posted by Davanum Srinivas <da...@gmail.com>.
remove the beanmapping and try again.
On Thu, 24 Jun 2004 11:33:05 -0400 (EDT), Tomas Mazukna
<to...@usermail.com> wrote:
> 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");
>
>
--
Davanum Srinivas - http://webservices.apache.org/~dims/
Re: could not find deserializer for type
Posted by Tomas Mazukna <to...@usermail.com>.
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");
>>
>>
>>
>>
>
>
Re: could not find deserializer for type
Posted by Tomas Mazukna <to...@usermail.com>.
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");
>
>
>
>