PojoWebservice - RPCServiceClient cannot handle abstract classes anymore
------------------------------------------------------------------------
Key: AXIS2-4488
URL: https://issues.apache.org/jira/browse/AXIS2-4488
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Affects Versions: 1.4, 1.4.1, 1.5
Environment: n/a
Reporter: Andre Schneider
Fix For: 1.3
Given following Pojo class structure:
class A has a field of class B
class B is abstract
class C extends class B
Now we create a new instance of A and put a new instance of C in A.
Now if a RPCServiceClient wants to send the instance of A to the corresponding
service
then the client doesn't send anything to the services.
In AXIS 1.4 and 1.4.1 the client throws a nullpointerexception.
In AXIS 1.5 the client throws no Exception but also sends nothing to the
service.
In AXIS 1.3 everything works fine.
And in the other direction if we want to fetch a object A with an object in
Field B from the service
then the RPCServiceClient throws follwing Exception:
org.apache.axis2.AxisFault: testproject.B
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at
org.apache.axis2.engine.DefaultObjectSupplier.getObject(DefaultObjectSupplier.java:45)
at
org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:368)
at
org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:410)
at
org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:682)
at
org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:630)
at
org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:562)
at
org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:104)
at
testproject.AbstractServiceClient.makeServiceCall(AbstractServiceClient.java:56)
at
testproject.TestServiceClient.getComplexObject(TestServiceClient.java:34)
at testproject.ServiceCall.main(ServiceCall.java:22)
Caused by: java.lang.InstantiationException: testproject.B
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at
org.apache.axis2.engine.DefaultObjectSupplier.getObject(DefaultObjectSupplier.java:40)
... 9 more
But if we set field B in A to null then the client in AXIS2 versions 1.4-1.5
sends the object A to the service.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.