Hi,

We are embedding Message Broker feature into API Manager 3.0 core, now API
Manager will function as both MB server and client to manage its artifacts
such as API, application, subscription, throttling etc between its nodes
and Gateway. andes-client [1] will function as JMS client for embedded MB.

I'm getting the following exception [3] while starting API Manager. When I
check the OSGi console for available services with 'ls', I don't see any
services from andes-client, but andes-client bundle is active. Please find
the half committed PR [2].

I learned that, on top of wrapping a library as OSGI bundle, we have to
expose them as SPI services too. So the issue here is, andes-client library
isn't exposing any SPI service to consume by carbon-jndi.

Carbon team please confirm.

[1]:
https://github.com/wso2/andes/blob/v3.2.22/modules/orbit/andes-client/pom.xml
[2]: https://github.com/wso2/carbon-apimgt/pull/4421
[3]:
[2017-08-21 09:28:17,041] ERROR
{org.wso2.carbon.apimgt.core.util.BrokerUtil} - Could not create a JMS
client connection from the class javax.naming.NoInitialContextException:
Cannot find the InitialContextFactory
org.wso2.andes.jndi.PropertiesFileInitialContextFactory.
at
org.wso2.carbon.jndi.internal.osgi.JNDIContextManagerImpl.lambda$getInitialContextInternal$28(JNDIContextManagerImpl.java:118)
at java.util.Optional.orElseThrow(Optional.java:290)
at
org.wso2.carbon.jndi.internal.osgi.JNDIContextManagerImpl.getInitialContextInternal(JNDIContextManagerImpl.java:118)
at
org.wso2.carbon.jndi.internal.osgi.JNDIContextManagerImpl.newInitialContext(JNDIContextManagerImpl.java:68)
at
org.wso2.carbon.jndi.internal.osgi.factory.DefaultContextFactory.lambda$getInitialContext$21(DefaultContextFactory.java:68)
at
org.wso2.carbon.jndi.internal.util.LambdaExceptionUtils.lambda$rethrowFunction$2(LambdaExceptionUtils.java:120)
at java.util.Optional.map(Optional.java:215)
at
org.wso2.carbon.jndi.internal.osgi.factory.DefaultContextFactory.getInitialContext(DefaultContextFactory.java:68)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at org.wso2.carbon.apimgt.core.impl.BrokerImpl.<init>(BrokerImpl.java:59)
at
org.wso2.carbon.apimgt.core.internal.BundleActivator.start(BundleActivator.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at
org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:915)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:464)
at
org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at
org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:915)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:464)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:482)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:999)
at
org.wso2.carbon.connector.framework.ConnectorManager.registerServerConnector(ConnectorManager.java:56)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at
org.wso2.carbon.connector.framework.ConnectorManager.registerServerConnectorProvider(ConnectorManager.java:124)
at
org.wso2.carbon.connector.framework.server.internal.ServerConnectorSC.registerServerConnectorProvider(ServerConnectorSC.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:376)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:444)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:218)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:343)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at
org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:915)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:464)
at
org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at
org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
at
org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
at
org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816)
at
org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at
org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)

[2017-08-21 09:28:17,121]  INFO
{org.wso2.andes.configuration.AndesConfigurationManager} - Main andes
configuration located at :
/home/abimaran/sources/wso2/git/abimaran/product-apim/product/target/wso2apim-3.0.0-SNAPSHOT/conf/broker.xml


-- 
Thanks
Abimaran Kugathasan
Senior Software Engineer - API Technologies

Email : abima...@wso2.com
Mobile : +94 773922820

<http://stackoverflow.com/users/515034>
<http://lk.linkedin.com/in/abimaran>  <http://www.lkabimaran.blogspot.com/>
<https://github.com/abimarank>  <https://twitter.com/abimaran>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to