Re: Local server is not initialized

2008-09-10 Thread Jean-Louis MONTEIRO

Andreas,

Seems like you are still using JBoss InitialContext implementation. 
Did you set your system properties to use OpenEJB InitialContextFactory ?

Properties properties = new Properties();

properties.put(Context.INITIAL_CONTEXT_FACTORY, 
org.openejb.client.LocalInitialContextFactory);

InitialContext ctx = new InitialContext(properties);

Regards,
Jean-Louis


Andreas Karalus wrote:
 
 first of all, I would like to thank all the people in forum for the quick
 responses. openejb looks like solid piece of software.
 
 however, i'm still running into problems while trying to migrate our jboss
 embedded tests to openejb. 
 
 booting of openejb works fine, however, we have some places in our code
 where we do a new InitialContext(). whenever this code is reached while
 openejb is running, I get a javax.naming.NamingException
 
 INFO - Deployed
 Application(path=D:\projekte\HEAD\ed02\env\testframework\target\classes)
 javax.naming.NamingException: Local server is not initialized
   at
 org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
   at
 javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
   at 
 javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
   at javax.naming.InitialContext.init(InitialContext.java:223)
   at javax.naming.InitialContext.init(InitialContext.java:175)
 ...   
 
 any ideas welcome,
 regards,
 andreas
 
 

-- 
View this message in context: 
http://www.nabble.com/%22Local-server-is-not-initialized%22-tp19396008p19407453.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Re: Local server is not initialized

2008-09-10 Thread Jean-Louis MONTEIRO

Andreas,

As far as I know, the InitialContext (from your JDK) has a kind of failback
mechanism.
If no properties are used (new InitialContext() or new
InitialContext(null)), a set of properties will be built using env params,
applet params, system params and then jndi.properties params.

So from my point of view, you can create a jndi.properties and put it in
your classpath. The jndi.properties file must contain a line
java.naming.factory.initial=org.apache.openejb.client.LocalInitialContextFactory

But, I think there is a problem within Tomcat cause Tomcat puts its own
InitialContext Factory implementation first, so you will never be able to
use your InitialContext Factory using standard mechanisms.
See http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q22

Regards,
Jean-Louis



Andreas Karalus wrote:
 
 Jean Louis,
 
 thank you for your quick reply. 
 I start openejb in the way you described, and the startup is fine. 
 I am also able to test some ejbs.
 However, if somewhere in our code, a new InitialContext is initialized, I
 get the exception.
 
 so basically I have following configuration:
 
 class Beanfactory{
  
  static void initContainer() {
Properties properties = new Properties();
 
properties.put(Context.INITIAL_CONTEXT_FACTORY, 
 org.openejb.client.LocalInitialContextFactory);
 
// THIS WORKS FINE
InitialContext ctx = new InitialContext(properties);
 }
 
 I want to test code that performs itself a InitialContext ctx = new
 InitialContext(). This works well with jboss.embedded, but fails with
 openejb. 
 For jboss.embedded we use a jndi.properties as configuration. so if the
 file is present in classpath, new IntialContext() works fine. I wonder if
 there is a similar configuration in openejb? 
 
 thx,
 andreas
 
 p.s. here is the data in jndi.properties
 
 java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
 
 
 
 Jean-Louis MONTEIRO wrote:
 
 Andreas,
 
 Seems like you are still using JBoss InitialContext implementation. 
 Did you set your system properties to use OpenEJB InitialContextFactory ?
 
 Properties properties = new Properties();
 
 properties.put(Context.INITIAL_CONTEXT_FACTORY, 
 org.openejb.client.LocalInitialContextFactory);
 
 InitialContext ctx = new InitialContext(properties);
 
 Regards,
 Jean-Louis
 
 
 Andreas Karalus wrote:
 
 first of all, I would like to thank all the people in forum for the
 quick responses. openejb looks like solid piece of software.
 
 however, i'm still running into problems while trying to migrate our
 jboss embedded tests to openejb. 
 
 booting of openejb works fine, however, we have some places in our code
 where we do a new InitialContext(). whenever this code is reached while
 openejb is running, I get a javax.naming.NamingException
 
 INFO - Deployed
 Application(path=D:\projekte\HEAD\ed02\env\testframework\target\classes)
 javax.naming.NamingException: Local server is not initialized
 at
 org.jnp.interfaces.LocalOnlyContextFactory.getInitialContext(LocalOnlyContextFactory.java:45)
 at
 javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
 at
 javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
 at javax.naming.InitialContext.init(InitialContext.java:223)
 at javax.naming.InitialContext.init(InitialContext.java:175)
 ... 
 
 any ideas welcome,
 regards,
 andreas
 
 
 
 
 
 

-- 
View this message in context: 
http://www.nabble.com/%22Local-server-is-not-initialized%22-tp19396008p19409584.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Re: Local server is not initialized

2008-09-10 Thread David Blevins


On Sep 10, 2008, at 1:38 AM, Andreas Karalus wrote:


I want to test code that performs itself a InitialContext ctx = new
InitialContext(). This works well with jboss.embedded, but fails with
openejb.
For jboss.embedded we use a jndi.properties as configuration. so if  
the file
is present in classpath, new IntialContext() works fine. I wonder if  
there

is a similar configuration in openejb?

[...]


p.s. here is the data in jndi.properties

java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces


Right, it's the java.naming.factory.url.pkgs line that's causing the  
problem.  A snippet from the InitialContext javadoc:


   JNDI determines each property's value by merging the values from
   the following two sources, in order:

   1. The first occurrence of the property from the constructor's
  environment parameter and (for appropriate properties) the
  applet parameters and system properties.

   2. The application resource files (jndi.properties).


The vm is picking JBoss's org.jboss.naming and org.jnp.interfaces  
packages for all java: lookups instead of ours because the values of  
the jndi.properties file are getting merged with your InitialContext  
properties.


You could either delete your jndi.properties file completely or you  
could update it as follows:


   
java 
.naming 
.factory.initial=org.apache.openejb.client.LocalInitialContextFactory

  java.naming.factory.url.pkgs=org.apache.openejb.core.ivm.naming


Just make sure that you don't use these settings in an actual remote  
client running in a different VM than the server.  There you'd use  
these settings:


   
java 
.naming 
.factory.initial=org.apache.openejb.client.RemoteInitialContextFactory

  java.naming.factory.url.pkgs=org.apache.openejb.client


-David





Re: Local server is not initialized

2008-09-10 Thread Andreas Karalus

david, 

thank you very much!
I followed your hint and changed the jndi.properties for tests like you
suggested and everything works fine.
you are doing a great job here, thank you!

andreas



David Blevins wrote:
 
 
 On Sep 10, 2008, at 1:38 AM, Andreas Karalus wrote:
 
 I want to test code that performs itself a InitialContext ctx = new
 InitialContext(). This works well with jboss.embedded, but fails with
 openejb.
 For jboss.embedded we use a jndi.properties as configuration. so if  
 the file
 is present in classpath, new IntialContext() works fine. I wonder if  
 there
 is a similar configuration in openejb?
 [...]

 p.s. here is the data in jndi.properties

 java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
 
 Right, it's the java.naming.factory.url.pkgs line that's causing the  
 problem.  A snippet from the InitialContext javadoc:
 
 JNDI determines each property's value by merging the values from
 the following two sources, in order:
 
 1. The first occurrence of the property from the constructor's
environment parameter and (for appropriate properties) the
applet parameters and system properties.
 
 2. The application resource files (jndi.properties).
 
 
 The vm is picking JBoss's org.jboss.naming and org.jnp.interfaces  
 packages for all java: lookups instead of ours because the values of  
 the jndi.properties file are getting merged with your InitialContext  
 properties.
 
 You could either delete your jndi.properties file completely or you  
 could update it as follows:
 
 
 java 
 .naming 
 .factory.initial=org.apache.openejb.client.LocalInitialContextFactory
java.naming.factory.url.pkgs=org.apache.openejb.core.ivm.naming
 
 
 Just make sure that you don't use these settings in an actual remote  
 client running in a different VM than the server.  There you'd use  
 these settings:
 
 
 java 
 .naming 
 .factory.initial=org.apache.openejb.client.RemoteInitialContextFactory
java.naming.factory.url.pkgs=org.apache.openejb.client
 
 
 -David
 
 
 
 
 

-- 
View this message in context: 
http://www.nabble.com/%22Local-server-is-not-initialized%22-tp19396008p19414605.html
Sent from the OpenEJB User mailing list archive at Nabble.com.