IOObjectReader does not work with plugin classes

Username
Username New Altair Community Member
edited November 2024 in Community Q&A
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

Answers

  • IngoRM
    IngoRM New Altair Community Member
    Hello,

    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

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.