Re: Local server is not initialized
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
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
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
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.