RapidMiner Wisdom Banner

IOObjectReader does not work with plugin classes

UsernameUsername Member Posts: 39  Guru
edited November 2018 in Help
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
Tagged:

Answers

  • IngoRMIngoRM Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, Community Manager, RMResearcher, Member, University Professor Posts: 1,715  RM Founder
    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
    RapidMiner Wisdom 2020
    February 11th and 12th 2020 in Boston, MA, USA

Sign In or Register to comment.