For those of you who are interested in this low level stuff, here is a
solution to the classpath issue. If anyone wants ClassPathUpdate class,
just shoot me an email:
public class main
{
public main(String[] args)
{
ClassLoader loader = ClassLoader.getSystemClassLoader();
if(loader instanceof URLClassLoader)
{
//For convenience so we don't have to cast everything
URLClassLoader urlLoader = (URLClassLoader)loader;
//Get the existing jars in the class path and show them
URL [] urls = urlLoader.getURLs();
showUrls(urls, "Before");
System.out.println("Trying to add url
C:\\jdk1.5\\jre\\lib\\ext.sav\\servlet.jar");
try
{
//Add a new one
ClassPathUpdater.addFile("C:\\jdk1.5\\jre\\lib\\ext.sav\\servlet.jar",
urlLoader);
System.out.println("!!!!!Success");
//Show the results after
urls = urlLoader.getURLs();
showUrls(urls, "\nAfter");
}
catch(Exception e)
{
e.printStackTrace();
}
}
else
{
System.out.println(loader.getClass().getName() + " is
not a
URLClassLoader");
}
}
....
And here is the results of the run, Note that the added file "servlet.jar"
is now in the classpath in the "After" block:
...test>java -cp test.jar main
Before, Got 1 URLs = :
URL[0] = file:/D:/JavaProjects/ClassLoader/test/test.jar
Trying to add url C:\jdk1.5\jre\lib\ext.sav\servlet.jar
!!!!!Success
After, Got 2 URLs = :
URL[0] = file:/D:/JavaProjects/ClassLoader/test/test.jar
URL[1] = file:/C:/jdk1.5/jre/lib/ext.sav/servlet.jar
> [EMAIL PROTECTED] sent the following on 9/27/2007 10:30 PM:
>> 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 don't get this problem when I run Ofbiz normally using the same "login"
>> service.
>>
>> Somehow, it appears as if ofbiz-service.jar is not on the class path or
>> cannot be accessed. I even went so far as to copy it into my lib
> directory
>> with my jar file where it is referenced by my ofbiz-component.xml as:
>>
>> <classpath type="jar" location="dist/*"/>
>> <classpath type="jar" location="dist/lib/*"/>
>>
>> No joy. I am referencing lots of other Ofbiz jar files and they all load
>> just fine, for example ofbiz-base.jar, ofbiz-security.jar, and
>> ofbiz-party.jar. For some reason, the class loader will not load the
>> service engine. I only get a problem when I try to call a service with
>> "dispatcher.runSync()". I have been successfully reading and writing the
>> the database via GenericDelegator without problem. Just when I try to
run
> a
>> service.
>>
>> This is running under windows, jdk 1.5 and the Ofbiz version of a week
> ago.
>> For completeness, here is my containers.xml file:
>>
>> <ofbiz-containers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>
>>
>
xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/ofbiz-containers.xs
>> d">
>> <!-- load the ofbiz component container (always first) -->
>> <container name="component-container"
>> class="org.ofbiz.base.container.ComponentContainer"/>
>>
>> <!-- load the cached classloader container (always second) -->
>> <container name="classloader-container"
>> class="org.ofbiz.base.container.ClassLoaderContainer"/>
>>
>> <!-- load the FS Sales Order Entry GUI -->
>> <container name="fssoe-container" class="com.fs.FSSoeContainer">
>> <property name="startup-directory"
>> value="/specialpurpose/fs/config/"/>
>> <property name="dispatcher-name" value="FSSoeDispatcher"/>
>> <property name="delegator-name" value="default"/>
>> </container>
>>
>> </ofbiz-containers>
>>
>> Anyone have a clue. I'd hate to do this thing entirely without using the
>> Ofbiz services.
>>
>> Skip
>>
>>
>>
>>
>>
>
>
>
>