I ran into the same problem trying to run under OSGi, as the javax packages
are not available by default.
Here are the needed packages in OSGi:
javax.naming
javax.naming.ldap
javax.naming.event
javax.naming.directory
javax.naming.spi
com.sun.naming.internal

I couldn't get com.sun, so I gave up on JNDI.

Here is a thread from the Felix OSGi mailing list:
http://osdir.com/ml/users-felix-apache/2011-11/msg00046.html

On Thu, Jan 19, 2012 at 3:54 PM, EnNuages <[email protected]> wrote:

>
> Hi QPID folks,
>
> I'm trying to port:  Apache Qpid Client, JMS and JNDI -- to Android.  I'm
> able to get a successful compile/build of my QpidDroid project when running
> the ant debug install targets after passing Dalvik the --core-library
> parameter to allow javax packages for JMS/JNDI.  I'm hoping to do this
> before considering repackaging/refactoring javax classes into a different
> package namespace using jarjar.
>
> I think this is legally legit because I'm using the old/first seperate JNDI
> jar currently provided by Oracle's website.  I'm using the JMS jar that
> comes with Apache Geronimo in Qpid,.. but I think it's also available from
> Oracle as a seperate download.  My dev environment uses Android platform
> 2.1
> and jdk 1.6.
>
> The problem is, it seems it currently cannot instantiate my custom jndi
> connection factory: PropertiesFileInitialContextFactory.  This is a .java
> source file in my QpidDroid project(not a .class in a libs jar)   (I
> extracted the class out of the qpidClient jar).
>
> Would someone have any idea as to why it cannot be instantiated here?  I
> was
> wondering if proguard might be breaking reflection,... but I'm building it
> with the debug ant task,.. so I'm thinking proguard shouldn't be running at
> all.  The exception occurs when I run the installed app on the emulator.  I
> have the Apache Qpid service running on the same machine with the default
> port that it uses.
>
>
> 01-18 18:05:16.966: W/System.err(296): [Root exception is
> java.lang.ClassNotFoundException:
>
> org.apache.qpid.jndi.PropertiesFileInitialContextFactory]javax.naming.NoInitialContextException:
> Cannot instantiate class:
> org.apache.qpid.jndi.PropertiesFileInitialContextFactory
> 01-18 18:05:17.006: W/System.err(296):  at
>
> javax.naming.spi.NamingManager.getDefaultInitialContextFactory(NamingManager.java:720)
> 01-18 18:05:17.006: W/System.err(296):  at
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:768)
> 01-18 18:05:17.016: W/System.err(296):  at
> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:169)
> 01-18 18:05:17.016: W/System.err(296):  at
> javax.naming.InitialContext.<init>(InitialContext.java:146)
> 01-18 18:05:17.016: W/System.err(296):  at
> org.rif.QpidDroid.Hello.runTest(Hello.java:56)
>
> Thanks for any tips!
> --
> View this message in context:
> http://old.nabble.com/My-Android-QPID-port-progress%2C--PropertiesFileInitialContextFactory-question-tp33170991p33170991.html
> Sent from the Qpid Developers mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
>
>


-- 
Matt Stevenson.

Reply via email to