Hi Matt,

it is hard to say what is going wrong, from the stack trace though I can say 
that the OSGiInitialContextFactoryBuilder the root to all OSGi integration is 
not installed. That means either 
a) the JNDI activator (org.apache.aries.jndi.startup.Activator) did not run
b) It failed to set itself as the InitialContextFactoryBuilder. In that case 
there should be a "Cannot set the InitialContextFactoryBuilder ..." info 
message in the itest logs somewhere.

I suspect that a) is the more likely case, in which case something went wrong. 
Could you post your exact configuration settings - best with specific maven 
versions - so I can try to reproduce the problem?

Regards,

Valentin


On 18 Apr 2011, at 21:28, Matt Madhavan wrote:

> Hello Valentin,
> I have all the bundles you have mentioned. Its still not starting :( Any more 
> ideas?
> 
> Thanks
> Matt
> 
> On Mon, Apr 18, 2011 at 2:31 PM, Valentin Mahrwald <[email protected]> 
> wrote:
> Hi Matt,
> 
> the stack trace looks like in the ITest there is no Aries JNDI provider 
> (either because it is not installed or has failed to start).
> 
> In the blog tests there is:
>             mavenBundle("org.apache.aries.jndi", "org.apache.aries.jndi" )
> 
> Plus at least the following dependencies I believe:
> 
>             mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy"),
>             mavenBundle("org.apache.aries", "org.apache.aries.util" ),
>             mavenBundle("org.ops4j.pax.logging", "pax-logging-api"),
>             mavenBundle("org.ops4j.pax.logging", "pax-logging-service"),
>             mavenBundle("asm", "asm-all" )
> 
> If you have those already in the setup, then I would assume that the JNDI 
> bundle has not started correctly :(
> 
> Regards,
> 
> Valentin
> 
> On 18 Apr 2011, at 20:22, Matt Madhavan wrote:
> 
>> Hello,
>> I have a service defined as follows:
>> 
>>      <bean id="persistenceImpl"
>>              
>> class="com.hcsc.itf.osgi.samples.bp_sdm_jpa.jpa.BlogPersistenceServiceImpl">
>>              <tx:transaction method="*" value="Required" />
>>              <jpa:context property="entityManager" unitname="blogExample" />
>>      </bean>
>> 
>>      <service id="blogJPAPersistenceService" ref="persistenceImpl"
>>              
>> interface="com.hcsc.itf.osgi.samples.bp_sdm_jpa.api.persistence.BlogPersistenceService">
>>                 <service-properties>
>>                              <entry key="osgi.jndi.service.name" 
>> value="persistence/bpJPAPersistenceService"/>
>>              </service-properties>           
>>      </service>              
>> 
>> When I do Integration test (I'm using PAX-Exam/Pax_runner(1.5.0) with 
>> Equinox) I can look up the Service as follows with no problem.
>> 
>>  @Test
>>      public void testPeristence() throws Exception {
>>              BlogPersistenceService jpaService = getOsgiService(
>>                              BlogPersistenceService.class,
>>                              
>> "osgi.jndi.service.name=persistence/bpJPAPersistenceService",
>>                              10000); 
>> 
>> But I wanted to,look up the same service as a raw JNDI Look up as follows:   
>> 
>>      @Test
>>      public void testPeristence() throws Exception {
>>              InitialContext ic = new InitialContext();
>> 
>>              BlogPersistenceService jpaService = (BlogPersistenceService) 
>> ic.lookup("osgi:service/"
>>                              + 
>> "com.hcsc.itf.osgi.samples.bp_sdm_jpa.api.persistence.BlogPersistenceService");
>> 
>> 
>> 
>> 
>> I'm getting the following Exception. (Please note that I'm in essence doing 
>> the same thing as Apache Aries Blog sample!)
>> 
>> javax.naming.NoInitialContextException: Need to specify class name in 
>> environment or system property, or as an applet parameter, or in an 
>> application resource file:  java.naming.factory.initial
>>      at 
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
>>      at 
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>      at 
>> javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
>>      at javax.naming.InitialContext.lookup(InitialContext.java:392)
>>      at 
>> com.hcsc.itf.osgi.samples.bp_sdm_jpa.itests.jpa.BpJpaJndiLookUpITest.testPeristence(BpJpaJndiLookUpITest.java:41)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at 
>> org.ops4j.pax.exam.junit.extender.impl.internal.CallableTestMethodImpl.injectContextAndInvoke(CallableTestMethodImpl.java:143)
>>      at 
>> org.ops4j.pax.exam.junit.extender.impl.internal.CallableTestMethodImpl.call(CallableTestMethodImpl.java:105)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at 
>> org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl.remoteCall(RemoteBundleContextImpl.java:80)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
>>      at sun.rmi.transport.Transport$1.run(Transport.java:159)
>>      at java.security.AccessController.doPrivileged(Native Method)
>>      at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>>      at 
>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
>>      at 
>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
>>      at 
>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>      at java.lang.Thread.run(Thread.java:662)
>> 
>> I'm kind of lost! I'm doing the exact thing as done in the Aries Blog 
>> sample! Any ideas please?
>> 
>> Thanks
>> Matt
>> 
>> 
>> 
> 
> 

Reply via email to