Thanks Skip Put in my notes, maybe useful later. Not sure there is not a better practice for that, though. Like using something similar than the -pos parameter in command line ?
Jacques ----- Message d'origine ----- De : "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> À : <[email protected]> Envoyé : samedi 29 septembre 2007 03:11 Objet : In case anyone is interested > Yesterday, I sent out this email: > > Stumped on a complicated question: > > I am getting the following error: > > java.lang.ClassNotFoundException: > org.ofbiz.service.engine.StandardJavaEngine > > On this line 81 of > org.ofbiz.service.engine.GenericEngineFactory.getGenericEngine: > > Class c = loader.loadClass(className); > > > I am running ofbiz as a standalone app, similiar to java ofbiz.jar -pos > > > I have solved the problem and the solution was fairly simple. I was > prepared to do a reflection call to addURL on the ClassLoader, but the the > solution turned out to be even simpler than that. > > When Ofbiz instantiated my container, I simply grabbed the class loader it > used to start me up and then passed it to the Ofbiz connection layer like > this: > > ClassLoader loader = Thread.currentThread().getContextClassLoader(); > if(loader instanceof URLClassLoader) > { > URLClassLoader urlLoader = (URLClassLoader)loader; > connection.setClassLoader (urlLoader); > > } > > > In the connection layer, I have this code: > > void resetClassLoader() > { > if(this.loader == null) > return; > > ClassLoader loader = Thread.currentThread().getContextClassLoader(); > if(loader != this.loader) > Thread.currentThread().setContextClassLoader(this.loader); > > } > > I then simply call resetClassLoader() every time before I call an Ofbiz > service. > > Works a charm. > > Skip >
