Hi maybe try -Dopenejb.resources.use-container-loader=false.
If it doesn't work your classpath if surely wrong Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2014-11-15 9:09 GMT+01:00 Mansour Al Akeel <[email protected]>: > I am trying to fork a java process, where the subprocess runs openejb. > I am passing the classpath as an argument to the child process: > > > String classpath = classpathBuilder.toString(); > StringBuilder commandBuilder = new StringBuilder(); > > commandBuilder.append(javaBin); > > commandBuilder.append(" -Djdbc.driver='" + driver); > commandBuilder.append("' -Djdbc.url='" + url); > commandBuilder.append("' -Djdbc.username='" + username); > commandBuilder.append("' -Djdbc.password='" + password + "'"); > > commandBuilder.append(" -cp '"); > commandBuilder.append(classpath); > commandBuilder.append("' "); > > commandBuilder.append(" -Xdebug > -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 "); > commandBuilder.append(className); > > > Process process = Runtime.getRuntime().exec(command); > > > In the child process I have > > Class cls = Class.forName("org.postgresql.Driver"); > > > System.setProperty("openejb.classloader.forced-load", "org.postgresql"); > > properties.put(Context.INITIAL_CONTEXT_FACTORY, > "org.apache.openejb.client.LocalInitialContextFactory"); > > properties.put("openejb.validation.output.level", "VERBOSE"); > > String driver = System.getProperty("jdbc.driver"); > String url = System.getProperty("jdbc.url"); > String username = System.getProperty("jdbc.username"); > String password = System.getProperty("jdbc.password"); > > properties.put("jdbc/dataSource", "new://Resource?type=DataSource"); > properties.put("jdbc/dataSource.JdbcDriver", driver); > properties.put("jdbc/dataSource.JdbcUrl", url); > properties.put("jdbc/dataSource.UserName", username); > properties.put("jdbc/dataSource.Password", password); > > However, I am getting this error: > > INFO - Creating TransactionManager(id=Default Transaction Manager) > INFO - Creating SecurityService(id=Default Security Service) > INFO - Creating Resource(id=jdbc/dataSource) > SEVERE - FATAL ERROR: Unknown error in Assembler. Please send the > following stack trace and this message to [email protected] : > org.apache.xbean.propertyeditor.PropertyEditorException: Unable to > resolve class 'org.postgresql.Driver' > at > org.apache.xbean.propertyeditor.ClassEditor.toObjectImpl(ClassEditor.java:43) > at > org.apache.xbean.propertyeditor.AbstractConverter.toObject(AbstractConverter.java:86) > at > org.apache.xbean.propertyeditor.PropertyEditors.getValue(PropertyEditors.java:284) > at org.apache.xbean.recipe.RecipeHelper.convert(RecipeHelper.java:172) > at > org.apache.xbean.recipe.ObjectRecipe.extractConstructorArgs(ObjectRecipe.java:592) > at > org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:275) > at > org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96) > at > org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61) > at > org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49) > at > org.apache.openejb.assembler.classic.Assembler.createResource(Assembler.java:2120) > at > org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:490) > at > org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:409) > at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:148) > at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:65) > at org.apache.openejb.OpenEJB.init(OpenEJB.java:296) > at org.apache.openejb.OpenEJB.init(OpenEJB.java:276) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) > at > org.apache.openejb.core.LocalInitialContextFactory.init(LocalInitialContextFactory.java:96) > at > org.apache.openejb.core.LocalInitialContextFactory.init(LocalInitialContextFactory.java:60) > at > org.apache.openejb.core.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:44) > at > javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) > at > javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) > > > I am sure the jdbc driver is in the classpath because I can load it > successfully. > > Any idea ?? > > Thank you.
