title: Newbee question
body: <p>Hy everybody,</p>
  
  <p>Thanks in advance for your help.</p>
  
  <p>Here is my problem.</p>
  
  <p>I want to instanciate a simple bean from spring into an OSGI Bundle. </p>
  
  <p>Here is my java class : </p>
  
  <pre><code>package testspring;
  
  public class ClassIOC {
  
      public void helloWorld(){
          System.out.println("Hello World Spring with OSGI");
      }
  
  }
  </code></pre>
  
  <p>Here is my activator</p>
  
  <pre><code>package testspring;
  
  import org.osgi.framework.BundleActivator;
  import org.osgi.framework.BundleContext;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.support.ClassPathXmlApplicationContext;
  
  public class Activator implements BundleActivator {
  
      private static BundleContext context;
  
      static BundleContext getContext() {
          return context;
      }
  
      /*
       * (non-Javadoc)
       * 
       * @see
       * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
       * )
       */
      public void start(BundleContext bundleContext) throws Exception {
      Activator.context = bundleContext;
  
          ApplicationContext appContext = new ClassPathXmlApplicationContext(
                  "META-INF/spring/applicationContext.xml");
          ClassIOC instance = (ClassIOC) appContext.getBean("ClassIOC");
          instance.helloWorld();
  
      }
  
      /*
       * (non-Javadoc)
       * 
       * @see
       * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
       */
      public void stop(BundleContext bundleContext) throws Exception {
          Activator.context = null;
      }
  
  }
  </code></pre>
  
  <p>Here is my manifest : </p>
  
  <pre><code>Manifest-Version: 1.0
  Bundle-ManifestVersion: 2
  Bundle-Name: TestSpring
  Bundle-SymbolicName: TestSpring
  Bundle-Version: 1.0.0.qualifier
  Bundle-Activator: testspring.Activator
  Bundle-ActivationPolicy: lazy
  Bundle-RequiredExecutionEnvironment: JavaSE-1.6
  Import-Package: org.osgi.framework;version="1.3.0"
  Bundle-ClassPath: .
  Require-Bundle: org.springframework.aop;bundle-version="2.5.6",
   org.springframework.beans;bundle-version="2.5.6",
   org.springframework.context;bundle-version="2.5.6",
   org.springframework.core;bundle-version="2.5.6",
   com.springsource.org.apache.commons.logging;bundle-version="1.1.1",
   com.springsource.org.apache.log4j;bundle-version="1.2.15"
  </code></pre>
  
  <p>I check into my OSGI container and I have all thoses bundles.</p>
  
  <p>Each times I activate my bundle i have the following exception : </p>
  
  <pre><code>org.osgi.framework.BundleException: Activator start error in bundle TestSpring [36].
          at org.apache.felix.framework.Felix.activateBundle(Felix.java:1869)
          at org.apache.felix.framework.Felix.startBundle(Felix.java:1739)
          at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:922)
          at org.apache.felix.gogo.command.Basic.start(Basic.java:758)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
          at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
          at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:458)
          at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:384)
          at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
          at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
          at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
          at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:79)
          at org.apache.felix.gogo.shell.Console.run(Console.java:62)
          at org.apache.felix.gogo.shell.Shell.console(Shell.java:198)
          at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:124)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
          at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
          at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:458)
          at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:384)
          at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
          at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
          at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
          at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:79)
          at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
          at java.lang.Thread.run(Unknown Source)
  Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [META-I
  NF/spring/applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [META-INF/spring/applicationContex
  t.xml] cannot be opened because it does not exist
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:349)
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
  
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
  
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
  
          at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
  
          at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
          at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
          at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContex
  t.java:123)
          at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
          at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:139)
          at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:83)
          at testspring.Activator.start(Activator.java:31)
          at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:633)
          at org.apache.felix.framework.Felix.activateBundle(Felix.java:1822)
          ... 32 more
  Caused by: java.io.FileNotFoundException: class path resource [META-INF/spring/applicationContext.xml] cannot be opened because it does not
  exist
          at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:143)
          at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
          ... 47 more
  org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [META-INF/spring/a
  pplicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [META-INF/spring/applicationContext.xml] cann
  ot be opened because it does not exist
  </code></pre>
  
  <p>I have try to declare  META-INF/spring directory as source, I try to access to my application Context directly (without "META-INF/spring"), it doesn't change everything....</p>
  
  <p>If I add the spring bundles as jar, it works...</p>
  
  <p>I'm missing of new ideas. I just want to do a simple instanciation of bean, I don't want to use spring dm, or I have don't understand everything, like how to instanciate bean with scope="prototype"</p>
  
  <p>Am i forced to use spring dm ?</p>
  
  <p>best regards</p>