[ https://issues.apache.org/jira/browse/TUSCANY-4000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Laws reassigned TUSCANY-4000: ----------------------------------- Assignee: Simon Laws > WS binding: ClassCastException: > org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLInterfaceImpl incompatible > with org.apache.tuscany.sca.interfacedef.java.JavaInterface > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > > Key: TUSCANY-4000 > URL: https://issues.apache.org/jira/browse/TUSCANY-4000 > Project: Tuscany > Issue Type: Bug > Components: Java SCA Axis Binding Extension > Affects Versions: Java-SCA-2.0-Beta3 > Reporter: Rashmi Hunt > Assignee: Simon Laws > > WS Binding reference with WSDL interface with a WSDL callback interface > <---invoking---> WS Binding Service with WSDL interface with a WSDL callback > interface > throws ClassCastException when Tuscany tries to cast WSDLInterfaceImpl to > JavaInterface > at JavaImplementationInvoker.invoke() method, at > (JavaInterface)interfaze.getCallbackInterface() > // If there is a callback interface and the implementation is > stateless, we need to > // inject callbacks at invocation time. For Composite scope, this > has already been done. > if (( interfaze.getCallbackInterface() != null ) && > (scopeContainer.getScope().equals(Scope.STATELESS))){ > injectCallbacks(wrapper, > (JavaInterface)interfaze.getCallbackInterface()); > } > This exception occurs when Web Service message reaches service implementation > which eventually invokes > JavaImplementationInvoker.invoke() > The above code is assuming that interfaze.getCallbackInterface() will return > instance of JavaInterface. > What if the callback interface on both service and reference are using WSDL > interface? > Shouldn't above logic take care of WSDL interface case? > Exception stack, > Caused by: java.lang.ClassCastException: > org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLInterfaceImpl incompatible > with org.apache.tuscany.sca.interfacedef.java.JavaInterface > at > org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:117) > ............... > at > org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:58) > at > org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:126) > at > org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:109) > at > org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl.invoke(RuntimeEndpointImpl.java:328) > components, > <component name="MyComponent"> > <implementation.java class="samples.MyServiceImpl"/> > <service name="MyService"> > <interface.wsdl > interface="http://www.mybank.com/account#wsdl.interface(MyService)" > > callbackInterface="http://www.mybank.com/account#wsdl.interface(MyServiceCallback)" > /> > > <binding.ws > > wsdlElement="http://www.mybank.com/account#wsdl.port(MyService/MyServicePort)" > /> > <callback> > <binding.ws name="MyServiceCallback"/> > </callback> > </service> > </component> > <component name="MySummaryService"> > <implementation.java class="samples.MySummaryServiceImpl"/> > <reference name="myService"> > <interface.wsdl > interface="http://www.mybank.com/account#wsdl.interface(MyService)" > > callbackInterface="http://www.mybank.com/account#wsdl.interface(MyServiceCallback)" > /> > > <binding.ws > wsdlElement="http://www.mybank.com/account#wsdl.port(MyService/MyServicePort)" > /> > <callback> > <binding.ws > wsdlElement="http://www.mybank.com/account#wsdl.binding(MyServiceCallback)"/> > </callback> > </reference> > </component> -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira