The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
IOObjectReader does not work with plugin classes
Hi,
I am writing a custom plugin for RM. The IOObjectReader operator does not work with IOObjects from my plugin. The operator throws a ClassNotFoundException in line 65 (I'm using the built in Java object serialization). Everything else from my plugin works without problems.
Here's the stack trace of the exception:
Exception: java.lang.ClassNotFoundException
Message: de.unidue.inf.classification.data.common.Documents
Stack trace:
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:247)
java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
com.rapidminer.operator.io.IOObjectReader.apply(IOObjectReader.java:65)
com.rapidminer.operator.Operator.apply(Operator.java:664)
com.rapidminer.operator.OperatorChain.apply(OperatorChain.java:377)
com.rapidminer.operator.Operator.apply(Operator.java:664)
com.rapidminer.Process.run(Process.java:612)
com.rapidminer.Process.run(Process.java:582)
com.rapidminer.Process.run(Process.java:572)
com.rapidminer.gui.ProcessThread.run(ProcessThread.java:61)
Thanks
I am writing a custom plugin for RM. The IOObjectReader operator does not work with IOObjects from my plugin. The operator throws a ClassNotFoundException in line 65 (I'm using the built in Java object serialization). Everything else from my plugin works without problems.
Here's the stack trace of the exception:
Exception: java.lang.ClassNotFoundException
Message: de.unidue.inf.classification.data.common.Documents
Stack trace:
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:247)
java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
com.rapidminer.operator.io.IOObjectReader.apply(IOObjectReader.java:65)
com.rapidminer.operator.Operator.apply(Operator.java:664)
com.rapidminer.operator.OperatorChain.apply(OperatorChain.java:377)
com.rapidminer.operator.Operator.apply(Operator.java:664)
com.rapidminer.Process.run(Process.java:612)
com.rapidminer.Process.run(Process.java:582)
com.rapidminer.Process.run(Process.java:572)
com.rapidminer.gui.ProcessThread.run(ProcessThread.java:61)
Thanks
Tagged:
0
Answers
I am assuming that you have written the object with the IOObjectWriter. Does your new IOObject extend AbstractIOObject? This is probably necessary if the generic IOObject writing and reading properly works.
As a workaround you could of course always write a pair of Reading / Writing operators for your object yourself - but of course if would be easier to use the generic ones. So we should try to get this working.
Cheers,
Ingo