[rules-users] java.lang.ClassNotFoundException: [Lorg.drools.rule.Declaration;
Edson Tirelli
tirelli at post.com
Thu Dec 6 18:51:00 EST 2007
Why don't you use DroolsObjectInputStream to deserialize it? Check the
integration tests on how to do it.
[]s
Edson
2007/12/6, Manan Gosalia <goldenmask13 at yahoo.com>:
>
> Hello,
>
> I am trying to deserialize rule package from disk. However, I am getting
> the following exception. I have also included the code that I use to
> deserialize rule packages. I found only one link on the web that describes
> this issue after looking around:
> http://www.mail-archive.com/user@drools.codehaus.org/msg01731.html. But
> there was no solution or help there. Any idea?
>
> I am using drools 3.0.5 and Java 1.5.
>
> Caused by: java.lang.ClassNotFoundException: [Lorg.drools.rule.Declaration
> ;
> at java.net.URLClassLoader$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net <http://java.net.urlclassloader.fi/>.URLClassLoader.findClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at org.drools.rule.PackageCompilationData$PackageClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at org.drools.common.ObjectInputStreamWithLoader.resolveClass(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readNonProxyDesc(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readClassDesc(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readArray(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject0(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.de/>.ObjectInputStream.defaultReadFields(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readSerialData(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readOrdinaryObject(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject0(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject(Unknown
> Source)
> at java.util.HashMap.readObject(Unknown Source)
> at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at java.io <http://java.io.objectstreamclass.in/>.ObjectStreamClass.invokeReadObject(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readSerialData(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readOrdinaryObject(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject0(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject(Unknown
> Source)
> at org.drools.rule.PackageCompilationData.readExternal(Unknown Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readExternalData(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readOrdinaryObject(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject0(Unknown
> Source)
> at java.io <http://java.io.objectinputstream.re/>.ObjectInputStream.readObject(Unknown
> Source)
> at org.drools.rule.Package.readExternal(Unknown Source)
> at com.cisco.cp.engine.util.CPRuleUtil$CPRuleFileHelper.getRulePackage(
> CPRuleUtil.java:654)
> ... 26 more
>
>
>
> private Package getRulePackage(File file) throws Exception {
> // Make sure file is a valid rule file with the proper rule file
> // ... type.
> if(file == null) {
> throw new Exception("File argument is null");
> }
> if(!file.exists()) {
> throw new Exception("File does not exist");
> }
>
> FileInputStream ruleFileInputStream = null;
> ObjectInputStream ruleObjectInputStream = null;
> Reader ruleFileReader = null;
> Package rulePackage = null;
>
> try {
> rulePackage = new Package();
> // If the rule file is already compiled, then we just have
> // ... read it through object input stream.
> ruleFileInputStream = new FileInputStream(file);
> ruleObjectInputStream =
> new ObjectInputStream(ruleFileInputStream);
> rulePackage.readExternal(ruleObjectInputStream);
> // Validate the package - this will throw exception if there
> // ... were any error in the package.
> rulePackage.checkValidity();
> }
> finally {
> if (rulePackage != null &&
> rulePackage.getErrorSummary() != null &&
> !rulePackage.getErrorSummary().equals("")) {
> System.out.println("RULE FILE ERRORS: " +
> rulePackage.getErrorSummary());
> }
> if (ruleObjectInputStream != null) {
> ruleObjectInputStream.close();
> }
> if (ruleFileInputStream != null) {
> ruleFileInputStream.close();
> }
> if (ruleFileReader != null) {
> ruleFileReader.close();
> }
> }
> return rulePackage;
> }
>
>
> ------------------------------
> Looking for last minute shopping deals? Find them fast with Yahoo! Search.<http://us.rd.yahoo.com/evt=51734/*http://tools.search.yahoo.com/newsearch/category.php?category=shopping>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20071206/5c682b4d/attachment.html
More information about the rules-users
mailing list