[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[equinox-dev] RE: JNDI and OSGI
|
Hi Simon,
No, I don't mind. I just did what you suggested
Thread current = Thread.currentThread();
ClassLoader old = current.getContextClassLoader();
try {
current.setContextClassLoader(BridgeServlet.class.getClassLoader());
InitialContext context = new InitialContext();
DataSource jtaDatasourceInst =
(DataSource)context.lookup("java:/jdbc/WAFPATTERNSDATA");
if(jtaDatasourceInst ==null)
System.out.println("Could not find DataSource");
} catch (Throwable e) {
System.out.println("Could not find DataSource");
} finally {
current.setContextClassLoader(old);
}
and it works. It doesn't if you don't do the trick with the classloaders.
Now, we have another problem, or I guess we have because I haven't got to
test it. We are using Hibernate and probably hibernate will have the same
problems we have to find a DataSource. So, we will have to use AOP, or some
other trickery, to make it find the DataSource (I'm just guessing). I'm
new to OSGi and I'm struggling to adapt a Wicket based WEB development
framework (we are creating) to work in an OSGi environment...
Best regards,
Ernesto
Simon Kaegi wrote:
>
> Hi Ernesto,
>
> If you wouldn't mind could you describe a bit about what you did?
> Thanks.
> -Simon
>
>> -----Original Message-----
>> From: equinox-dev-bounces@xxxxxxxxxxx
>> [mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of Ernesto
>> Reinaldo Barreiro
>> Sent: Tuesday, January 30, 2007 3:18 AM
>> To: Equinox development mailing list
>> Subject: Re: [equinox-dev] JNDI and OSGI
>>
>> Dear all,
>>
>> Thanks for your answers. Following some of your suggestions ("buddy
>> classloading") I got it working. I agree that using this kind
>> of tricks is not clean but what other options do I have?
>> Unfortunately, we are forced to use "real" application
>> servers, so we cannot go pure OSGi and we have to use the
>> BridgeServlet approach.
>>
>> Best regards,
>>
>> Ernesto
>>
>>
>> Pascal Rapicault wrote:
>> >
>> > I'm pretty ignorant of JNDI and stuffs, but simply hearing the word
>> > "context class loader" immediatly makes me think about "buddy
>> > classloading".
>> > Have you explored that path?
>> > I know it is not "osgi" ratified (at least yet).
>> >
>> > PaScaL
>> >
>> >
>> >
>> > *"Simon Kaegi" <simon.kaegi@xxxxxxxxx>* Sent by:
>> > equinox-dev-bounces@xxxxxxxxxxx
>> >
>> > 01/29/2007 12:51 PM
>> > Please respond to
>> > Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
>> >
>> >
>> >
>> > To
>> > "Equinox development mailing list" <equinox-dev@xxxxxxxxxxx> cc
>> >
>> > Subject
>> > Re: [equinox-dev] JNDI and OSGI
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > To add to Neil's comment....
>> >
>> > The newsgroup would probably be better for this.
>> >
>> > JNDI interaction is tough as (at least in the implementations I've
>> > looked
>> > at) it tends to depend on specific instances of the thread context
>> > class loader.
>> > I'm guessing JBoss is going to be pretty standard in this regard in
>> > which case it's NamingManager might be looking for your
>> webapps class loader.
>> >
>> > This is not pretty and I'd be interested in seeing if we
>> can come up
>> > with a general solution to the problem however I can suggest an
>> > approach if you're desperate. Before creating your
>> InitialContext and
>> > whenever making lookup calls set (and then reset) your
>> thread context
>> > class loader to the webapps.
>> > You can get the webapp classloader in a variety of ways however the
>> > easiest might be to import
>> org.eclipse.equinox.servletbridge and then
>> > do something like BridgeServlet.class.getClassLoader().
>> >
>> > HTH
>> > -Simon
>> >
>> >
>> > ----- Original Message -----
>> > From: "Neil Bartlett" <njbartlett@xxxxxxxxx>
>> > To: "Equinox development mailing list" <equinox-dev@xxxxxxxxxxx>
>> > Sent: Monday, January 29, 2007 12:33 PM
>> > Subject: Re: [equinox-dev] JNDI and OSGI
>> >
>> >
>> > > Hi Ernesto,
>> > >
>> > > I'm not 100% this is suitable for this list, but then I
>> don't know
>> > > where else it should be asked so I'll have a go at
>> answering anyway.
>> > >
>> > > It sounds like your JNDI InitialContext is trying to make
>> a remote
>> > > connection to an external JNDI server via the network. Presumably
>> > > since your code is running inside JBoss, you actually want to use
>> > > the JBoss internal JNDI context. Ensure that there are no
>> > > jndi.properties files anywhere on the classpath. Some vendors
>> > > "helpfully" include a jndi.properties file in the JARs that they
>> > > ship, just to make life difficult.
>> > >
>> > > Also ensure that you setup the JNDI data source as an environment
>> > > reference in the web.xml, and in the jboss_web.xml, and
>> then use the
>> > > "java:comp/env" prefix for your JNDI lookup...
>> > >
>> > > Alternatively, you could stop jumping through all these
>> ridiculous
>> > > hoops just to use a legacy technology like JNDI, and try
>> going with
>> > > an
>> > all-OSGi
>> > > architecture :-)
>> > >
>> > > Regards,
>> > > Neil
>> > >
>> > >
>> > >> Hi,
>> > >>
>> > >> I have a question regarding using JNDI (e.g. to look-up
>> > >> DataSources) and running equinox via a the servletbridge. I hope
>> > >> this is the right place to post it (if not my apologies,
>> and please
>> > >> tell me where
>> > should I
>> > >> ask).
>> > >>
>> > >> My question is simple. Is it possible to directly access JNDI
>> > >> resource from a bundle. I'm trying to access a
>> DataSource defined
>> > >> in JBoss and I get a
>> javax.naming.CommunicationException (with a
>> > >> nested timeout
>> > >> exception) .
>> > >>
>> > >> Best regards,
>> > >>
>> > >> Ernesto
>> > >> _______________________________________________
>> > >> equinox-dev mailing list
>> > >> equinox-dev@xxxxxxxxxxx
>> > >> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>> > >>
>> > >
>> > >
>> > > _______________________________________________
>> > > equinox-dev mailing list
>> > > equinox-dev@xxxxxxxxxxx
>> > > https://dev.eclipse.org/mailman/listinfo/equinox-dev
>> >
>> > _______________________________________________
>> > equinox-dev mailing list
>> > equinox-dev@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
>> >
>> >
>> ----------------------------------------------------------------------
>> > --
>> >
>> > _______________________________________________
>> > equinox-dev mailing list
>> > equinox-dev@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
>> >
>>
>> _______________________________________________
>> equinox-dev mailing list
>> equinox-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>
--
View this message in context: http://www.nabble.com/JNDI-and-OSGI-tf3137001.html#a8717763
Sent from the Equinox - Dev mailing list archive at Nabble.com.