Quantcast

JNDI issue with Karaf

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

JNDI issue with Karaf

Sachin Singh
Hi,
I have two one bundles I want to access bundle1 from bundle 2 using JNDI,
if I am binding JNDI using command jndi:bind(serviceId, name binds a JNDI name), if I will close the karaf console that will go off,
then I thought to use persistent JNDI using OSGI then I created bundle1 as
bundle1-
public void start(BundleContext bundleContext) throws Exception
  {
           try {
                         
                  String karaf_home=System.getenv("KARAF_HOME");
                   
                   bundleContext.registerService(IMyFramework.class.getName(), MyFrameworkFactory.initFramework("myprop.properties"), null);
               
                  Context cotx = new InitialContext();
                 // Runnable r = (Runnable) cotx.lookup("osgi:service/com.java.mytest.IMyFramework");
                    cotx.lookup("osgi:service/com.java.mytest.IMyFramework");
                   }
          catch (Exception e) {
                                e.printStackTrace();
          }
        }
bundle2-

public void start(BundleContext context) throws Exception {
 BundleContext bundleContext = FrameworkUtil.getBundle(ct.lookup("service/com.java.mytest.IMyFramework").getClass()).getBundleContext();
                        ServiceReference<?> serviceReference = bundleContext.getServiceReference(IPortFramework.class.getName());
                        Object serviceName = bundleContext.getService(serviceReference);
                        framework =  (PortFramework) serviceName;
  }

but its not accessible,
Please suggest the right approach or suggest sample  solution that how permanently I can create JNDI for my bundle1,

Thanks in advance.
Loading...