You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Samisa Abeysinghe (JIRA)" <ji...@apache.org> on 2010/12/19 12:37:03 UTC

[jira] Updated: (AXIS2-4488) PojoWebservice - RPCServiceClient cannot handle abstract classes anymore

     [ https://issues.apache.org/jira/browse/AXIS2-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Samisa Abeysinghe updated AXIS2-4488:
-------------------------------------

    Fix Version/s:     (was: 1.3)
                   1.6

> PojoWebservice - RPCServiceClient cannot handle abstract classes anymore
> ------------------------------------------------------------------------
>
>                 Key: AXIS2-4488
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4488
>             Project: Axis2
>          Issue Type: Bug
>    Affects Versions: 1.5, 1.4.1, 1.4
>         Environment: n/a
>            Reporter: Andre Schneider
>             Fix For: 1.6
>
>
> 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.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org