[ https://issues.apache.org/jira/browse/TUSCANY-1341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Nash updated TUSCANY-1341: -------------------------------- Attachment: jira1341-take2-patch1 This patch contains changes to the core runtime to enable callback support. Before applying this patch, the new files in jira1341-take2-newfiles.zip must be added. This patch must be applied before applying jira1341-take2-patch2. > Callback over WS Binding is not functioning various issues > ---------------------------------------------------------- > > Key: TUSCANY-1341 > URL: https://issues.apache.org/jira/browse/TUSCANY-1341 > Project: Tuscany > Issue Type: Bug > Components: Java SCA Misc Binding Extensions > Affects Versions: Java-SCA-0.90 > Reporter: Lou Amodeo > Attachments: jira1341-patch1, jira1341-patch2, jira1341-patch3, > jira1341-patch4, jira1341-patch5, jira1341-patch7, > jira1341-take2-newfiles.zip, jira1341-take2-patch1, simple-callback-ws.zip > > > The callback function using WS bindings doesnt appear to be operation. So > far I have : > 1) WebServiceBindingProcessor.java > - The resolve() method does not setup the callbackInterface on its > InterfaceContract resulting in NPE. > (i.e. interfaceContract.setCallbackInterface(wsdlCallbackInterface); ) > [6/11/07 13:33:02:220 EDT] 00000025 SystemOut O ... 87 more > [6/11/07 13:33:02:220 EDT] 00000025 SystemOut O Caused by: > java.lang.NullPointerException > at > org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl.map(InterfaceContractMapperImpl.java:246) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.createWires(CompositeActivatorImpl.java:337) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.createRuntimeWires(CompositeActivatorImpl.java:269) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:580) > at > org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain$DomainCompositeHelper.addComposite(EmbeddedSCADomain.java:124) > at > com.ibm.ws.sca2.tuscany.util.TuscanyInterfaceImpl.startModule(TuscanyInterfaceImpl.java:223) > at > com.ibm.ws.soa.sca.admin.runtime.tuscany.SCATuscanyRuntimeHandlerImpl.startModule(SCATuscanyRuntimeHandlerImpl.java:82) > at > com.ibm.ws.soa.sca.admin.runtime.impl.SCARuntimeImpl.start(SCARuntimeImpl.java:366) > at > com.ibm.ws.soa.sca.admin.runtime.impl.SCARuntimeImpl.stateChanged(SCARuntimeImpl.java:286) > at > com.ibm.ws.runtime.component.ApplicationMgrImpl.stateChanged(ApplicationMgrImpl.java:1264) > at > com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectEvent(DeployedApplicationImpl.java:1112) > at > com.ibm.ws.runtime.component.DeployedModuleImpl.setState(DeployedModuleImpl.java:206) > at > com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:566) > at > com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:814) > at > com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:965) > at > com.ibm.ws.runtime.component.ApplicationMgrImpl$1.run(ApplicationMgrImpl.java:1495) > at > com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:3924) > at > com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:4001) > at > com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:245) > at > com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1500) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:615) > at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:62) > at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:615) > at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:265) > at > javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1089) > at > javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:971) > at > com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:231) > at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:238) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:833) > at > com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802) > at > com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1080) > at > com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) > at > com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:973) > at > com.ibm.ws.management.commands.AdminServiceCommands$InvokeCmd.execute(AdminServiceCommands.java:251) > at > com.ibm.ws.console.core.mbean.MBeanHelper.invoke(MBeanHelper.java:239) > at > com.ibm.ws.console.appdeployment.ApplicationDeploymentCollectionAction.execute(ApplicationDeploymentCollectionAction.java:536) > at > org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1486) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:528) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:995) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930) > at > com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118) > at > com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87) > at > com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:761) > at > com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:673) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:498) > at > com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464) > at > com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:308) > at > org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1070) > at > org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:273) > at > org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455) > at > org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:319) > at > com.ibm.isclite.container.controller.InformationController.processForwardConfig(InformationController.java:159) > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1486) > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:528) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:995) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930) > at > com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145) > at > com.ibm.ws.console.core.servlet.WSCUrlFilter.setUpCommandAssistence(WSCUrlFilter.java:792) > at > com.ibm.ws.console.core.servlet.WSCUrlFilter.continueStoringTaskState(WSCUrlFilter.java:363) > at > com.ibm.ws.console.core.servlet.WSCUrlFilter.doFilter(WSCUrlFilter.java:229) > at > com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) > > If you set the callbackInterface above and proceeed you hit the following: > 2) Axis2ReferenceBindingProvider.java > - I dont think this requires a wire as this provider already knows abouts its > InterfaceContract. > wire is null resulting in a NPE > private Operation findCallbackOperation(RuntimeWire wire) { > /* > InterfaceContract contract = wire.getTarget().getInterfaceContract(); > // TODO: > > // which > > // end? LAA Hack */ > > InterfaceContract contract = this.getBindingInterfaceContract(); // > LAA hack > List callbackOperations = > contract.getCallbackInterface().getOperations(); > if (callbackOperations.size() != 1) { > throw new RuntimeException("Can only handle one callback > operation"); > } > Operation callbackOperation = (Operation)callbackOperations.get(0); > return callbackOperation; > } > If you obtain contract directly using getBindingInterfaceContract() you > proceed and get the following: > 3) DataBindingRuntimeProcessor > Caused by: java.lang.NullPointerException > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.isTransformationRequired(DataBindingRuntimeWireProcessor.java:51) > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.isTransformationRequired(DataBindingRuntimeWireProcessor.java:72) > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.isTransformationRequired(DataBindingRuntimeWireProcessor.java:99) > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.process(DataBindingRuntimeWireProcessor.java:116) > at > org.apache.tuscany.sca.core.invocation.ExtensibleWireProcessor.process(ExtensibleWireProcessor.java:40) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.createWires(CompositeActivatorImpl.java:348) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.createRuntimeWires(CompositeActivatorImpl.java:269) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:580) > ... 14 more > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:582) > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O at > org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain$DomainCompositeHelper.addComposite(EmbeddedSCADomain.java:124) > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O at > com.ibm.ws.sca2.tuscany.util.TuscanyInterfaceImpl.startModule(TuscanyInterfaceImpl.java:223) > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O at > com.ibm.ws.soa.sca.admin.runtime.tuscany.SCATuscanyRuntimeHandlerImpl.startModule(SCATuscanyRuntimeHandlerImpl.java:82) > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O at > com.ibm.ws.soa.sca.admin.runtime.impl.SCARuntimeImpl.start(SCARuntimeImpl.java:366) > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O ... 10 more > [6/13/07 9:54:51:646 EDT] 00000018 SystemOut O Caused by: > java.lang.NullPointerException > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.isTransformationRequired(DataBindingRuntimeWireProcessor.java:51) > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.isTransformationRequired(DataBindingRuntimeWireProcessor.java:72) > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.isTransformationRequired(DataBindingRuntimeWireProcessor.java:99) > at > org.apache.tuscany.core.databinding.wire.DataBindingRuntimeWireProcessor.process(DataBindingRuntimeWireProcessor.java:116) > at > org.apache.tuscany.sca.core.invocation.ExtensibleWireProcessor.process(ExtensibleWireProcessor.java:40) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.createWires(CompositeActivatorImpl.java:348) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.createRuntimeWires(CompositeActivatorImpl.java:269) > at > org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl.activate(CompositeActivatorImpl.java:580) > at > org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain$DomainCompositeHelper.addComposite(EmbeddedSCADomain.java:124) > > 4) I see this comment in Axis2CallbackInvocationHandler which is not being > executed anyway: > public Axis2CallbackInvocationHandler(MessageFactory messageFactory, > RuntimeWire wire) { > super(messageFactory, false); > this.wire = wire; > } > public Object invoke(Operation operation, Object[] args, LinkedList<URI> > callbackRoutingChain) throws Throwable { > // Object targetAddress = callbackRoutingChain.removeFirst(); > // if (targetAddress == null) { > // throw new AssertionError("Popped a null from address from > stack"); > // } > // //TODO optimize as this is slow in local invocations > // Map<Operation, InvocationChain> sourceCallbackInvocationChains = > // wire.getCallbackInvocationChains(); > // InvocationChain chain = > sourceCallbackInvocationChains.get(operation); > // chain.g > // TargetInvoker invoker = chain.getTargetInvoker(); > // return invoke(chain, invoker, args, null, callbackRoutingChain, > null); > throw new UnsupportedOperationException("not yet implemented"); > } -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]