Hi Roshan, that error you're getting: Component type reference not found for component reference: Component = HelloWorldClientComponent Reference = serviceA
is saying that the reference name in the SCDL "serviceA" isnt found when introspecting the implementation: <tuscany:implementation.osgi bundleSymbolicName="HelloWorldClient" bundleVersion="1.0.0" /> Does it exist in the HelloWorldClient bundle with exactly the same spelling and capitalisation? ...ant On Thu, Nov 26, 2009 at 5:06 AM, Joseph, Roshan IN BLR SISL <[email protected]> wrote: > Hi ant, > > Thank you for the replies; I have made some small changes to have my > service exposed via binding.jms. I don’t think this is the right way, but it > works for me atleast for the time being. What I have done is added another > bundle which will register an ActiveMQConnection factory object in the osgi > service registry and made changes in the JMSREsourceFactoryImpl in > org.apache.t.s.b.jms.provider bundle to access this same connection factory. > This helped me to get my service part working. > > > > The following method is modified in the JMSResourceFActoryImpl class... > > > > protected void createConnection() throws NamingException, JMSException { > > ConnectionFactory connectionFactory > =(ConnectionFactory)jndiLookUp(connectionFactoryName); > > if (connectionFactory == null) { > > // TODO: connection factory name may be a non-jndi name OSGi > complaint lookup. > > BundleContext bundleContext = > FrameworkUtil.getBundle(this.getClass()) > > .getBundleContext(); > > ServiceReference sr = > bundleContext.getServiceReference(ConnectionFactory.class.getName()); > > if(sr != null) { > > connectionFactory = > (ConnectionFactory)bundleContext.getService(sr); > > } > > else{ > > throw new JMSBindingException("connection factory not > found: " + connectionFactoryName); > > } > > } > > connection = connectionFactory.createConnection(); > > } > > > > > > > > Also I have implemented the lookupPhysical(String jndiName) method in the > same JMSResourceFactoryImpl using the same ConnectionFactory object > registered in the service registry of the OSGi runtime. > > On starting the service bundle I get the console output as > > > > ----------------Console O/P--------------------------- > > Nov 26, 2009 10:22:42 AM > org.apache.tuscany.sca.binding.jms.host.DefaultJMSServiceListener > registerListerner > > INFO: JMS service 'HelloWorldService' listening on destination DestQueueA > > Nov 26, 2009 10:22:42 AM > org.apache.tuscany.sca.core.assembly.impl.EndpointRegistryImpl addEndpoint > > INFO: Add endpoint - (@19275957)Endpoint: URI = > HelloWorldComponent#service-binding(HelloWorldService/HelloWorldService) > > ------------------------------------------------------------------ > > > > > > Currently I am looking at how to make a client use this service. The client > reference running in another osgi runtime is not able to use this exposed > service. I get error here as referenced service not found. > > > > My client composite is somewhat like as shown below. > > > > <component name="HelloWorldClientComponent"> > > <tuscany:implementation.osgi bundleSymbolicName="HelloWorldClient" > bundleVersion="1.0.0" /> > > <service name="HelloWorldClientProcessor"> > > <binding.ws/> > > </service> > > <reference name="serviceA"> > > <binding.jms > initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory" > jndiURL="tcp://localhost:61616"> > > <destination jndiName="DestQueueA"/> > > <response> > > <destination jndiName="RespQueueA"/> > > </response> > > </binding.jms> > > </reference> > > </component> > > > > If I start my client I get the following error... > > > > Nov 26, 2009 10:30:52 AM > org.apache.tuscany.sca.builder.impl.ComponentBuilderImpl [Composite: > {http://docs.oasis-open.org/ns/opencsa/sca/200903}, Component: > HelloWorldClientComponent] (ReferenceNotFoundForComponentReference) > > SEVERE: Component type reference not found for component reference: > Component = HelloWorldClientComponent Reference = serviceA > > Nov 26, 2009 10:30:54 AM org.apache.tuscany.sca.node.osgi.impl.NodeManager > bundleStarted > > SEVERE: org.oasisopen.sca.ServiceRuntimeException: [Composite: > {http://docs.oasis-open.org/ns/opencsa/sca/200903}, Component: > HelloWorldClientComponent] - Component type reference not found for > component reference: Component = HelloWorldClientComponent Reference = > serviceA > > java.lang.IllegalStateException: org.oasisopen.sca.ServiceRuntimeException: > [Composite: {http://docs.oasis-open.org/ns/opencsa/sca/200903}, Component: > HelloWorldClientComponent] - Component type reference not found for > component reference: Component = HelloWorldClientComponent Reference = > serviceA > > at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:176) > > at > org.apache.tuscany.sca.node.osgi.impl.NodeManager.bundleStarted(NodeManager.java:117) > > at > org.apache.tuscany.sca.node.osgi.impl.NodeManager.bundleChanged(NodeManager.java:139) > > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:916) > > at > org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220) > > at > org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) > > at > org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1350) > > at > org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1301) > > at > org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:362) > > at > org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370) > > at > org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068) > > at > org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557) > > at > org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464) > > at > org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248) > > at > org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445) > > at > org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220) > > at > org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330) > > Caused by: org.oasisopen.sca.ServiceRuntimeException: [Composite: > {http://docs.oasis-open.org/ns/opencsa/sca/200903}, Component: > HelloWorldClientComponent] - Component type reference not found for > component reference: Component = HelloWorldClientComponent Reference = > serviceA > > at > org.apache.tuscany.sca.node.impl.NodeFactoryImpl.analyzeProblems(NodeFactoryImpl.java:174) > > at > org.apache.tuscany.sca.node.impl.NodeFactoryImpl.configureNode(NodeFactoryImpl.java:275) > > at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:135) > > ... 16 more > > > > > > Would you able to comment on what is creating the problem? Thank you and > appreciate very much your comments and support. > > > > Regards > > Roshan > > > > > > > > > > > > > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of ant > elder > Sent: Tuesday, November 24, 2009 2:52 PM > To: Joseph, Roshan IN BLR SISL > Subject: Re: binding.jms in SCA Java 2.0 M4 > > > > Hi Roshan, sorry I've been snowed under and not had much of a chance > > to look at this yet so dont have much to add here. I'll try to look at > > it more shortly and maybe try to get one of the other Tuscany OSGi > > experts to have a look too as its more of an OSGi runtime thing than a > > JMS binding issue. > > > > ...ant > > > >
