Problem with Calling RM from my own standalone program

siamak_want
siamak_want New Altair Community Member
edited November 5 in Community Q&A
Hi all,

I have a bad problem with running an RM process from my own program. Before this time I could run RM processes in my program without any problem. But now, I want to run a process process which contains one of my own operators (my own cluster validator). It should be noted that my new operator works fine separately when I use it in RM as a plugin. But I cannot run the process containing it in my own program. here is the code"

RapidMiner.setExecutionMode(com.rapidminer.RapidMiner.ExecutionMode.EMBEDDED_WITH_UI);
File xmlFile = new File(getClass().getResource("/com/rapidminer/resources/process.xml").toString());
Process pr;
try {
pr = new Process(new File("process.xml"));

} catch (IOException e) {

throw new WrappedException(e);

} catch (XMLException e) {

throw new WrappedException(e);
}
 try {
pr.run();
} catch (OperatorException e) {

throw new WrappedException(e);
}
and here is the error when I run the programm:

Aug 1, 2012 4:12:46 PM com.rapidminer.tools.ParameterService init
INFO: Reading configuration resource com/rapidminer/resources/rapidminerrc.
Aug 1, 2012 4:12:46 PM com.rapidminer.tools.I18N <clinit>
INFO: Set locale to en.
Aug 1, 2012 4:12:46 PM com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Property rapidminer.home is not set. Guessing.
Aug 1, 2012 4:12:46 PM com.rapid_i.Launcher ensureRapidMinerHomeSet
INFO: Trying base directory of classes (build) 'E:\M\Eclipse_After20-11-90\eclipse\WS\Orchestrator'...gotcha!
Aug 1, 2012 4:12:48 PM com.rapidminer.parameter.ParameterTypePassword decryptPassword
WARNING: Password in XML file looks like unencrypted plain text.
Aug 1, 2012 4:12:48 PM com.rapidminer.tools.jdbc.JDBCProperties <init>
WARNING: Missing database driver class name for ODBC Bridge (e.g. Access)
Aug 1, 2012 4:12:48 PM com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
INFO: JDBC driver ca.ingres.jdbc.IngresDriver not found. Probably the driver is not installed.
Aug 1, 2012 4:12:48 PM com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
INFO: JDBC driver oracle.jdbc.driver.OracleDriver not found. Probably the driver is not installed.
[Fatal Error] :1:1: Premature end of file.
Aug 1, 2012 4:12:48 PM com.rapidminer.io.process.XMLImporter addMessage
INFO: <em class="error">The operator class 'tutorial:MClusterValidator' is unknown. Possibly you must install a plugin for operators of group 'tutorial'.</em>
Aug 1, 2012 4:12:50 PM com.rapidminer.io.process.XMLImporter addMessage
INFO: <em class="error">The input port <var>cluster model</var> is unknown at operator <var>MClusterValidator</var>.</em>
Aug 1, 2012 4:12:50 PM com.rapidminer.io.process.XMLImporter addMessage
INFO: <em class="error">The input port <var>example set</var> is unknown at operator <var>MClusterValidator</var>.</em>
Aug 1, 2012 4:12:50 PM com.rapidminer.io.process.XMLImporter addMessage
INFO: <em class="error">The output port <var>cluster model</var> is unknown at operator <var>MClusterValidator</var>.</em>
Aug 1, 2012 4:12:50 PM com.rapidminer.io.process.XMLImporter addMessage
INFO: <em class="error">The output port <var>performance vector</var> is unknown at operator <var>MClusterValidator</var>.</em>
Aug 1, 2012 4:12:50 PM com.rapidminer.tools.WrapperLoggingHandler log
INFO: No filename given for result file, using stdout for logging results!
Aug 1, 2012 4:12:50 PM com.rapidminer.Process run
INFO: Process C:\Predesigned2.xml starts
com.rapidminer.operator.UserError: The dummy operator MClusterValidator (replacing tutorial:MClusterValidator) cannot be executed.

I think RM can not load my plugin which contains my operator. So I used the following code:
System.setProperty(RapidMiner.PROPERTY_RAPIDMINER_INIT_PLUGINS_LOCATION, "E:\\M\\Eclipse_After20-11-90\\eclipse\\WS\\RapidMiner_Unuk\\lib");
But Again the same error appears. Any help would be appreciated.

Answers

  • siamak_want
    siamak_want New Altair Community Member
    Hi,

    I found the Problem....

    I should always remember not to reference to other projects in eclipse, instead, I should add their library.

    I also changed the execution mode like this:
    RapidMiner.setExecutionMode(com.rapidminer.RapidMiner.ExecutionMode.EMBEDDED_WITHOUT_UI);
    Does anyone know when should we use WITH_UI and when WithoutUI?