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

Simon Laws closed TUSCANY-4000.
-------------------------------

       Resolution: Fixed
    Fix Version/s: Java-SCA-2.0

Fix committed at revision: 1228143
                
> 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
>             Fix For: Java-SCA-2.0
>
>
> 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

        

Reply via email to