Thank you very much for your answer. I will look further into R Service Bus.

In the meantime, I have posted an issue on GitHub 
https://github.com/s-u/rJava/issues/32 where I describe a way to reproduce the 
unexpected behaviour.

Kind regards,

Ben

Le 30 sept. 2014 � 12:23, Mohan Radhakrishnan <radhakrishnan.mo...@gmail.com> a 
�crit :

> Hi,
>          You could ask the author or post an issue here 
> .(https://github.com/s-u/rJava)
> I had faced a problem and I got a response from him.
> 
> In my case I am streaming JVM data and 
> this(http://www.openanalytics.eu/r-service-bus) may be a better idea. I 
> haven't still tried this.
> 
> Thanks,
> Mohan
> 
> On Fri, Sep 26, 2014 at 5:25 PM, Beno�t Thi�bault <thieba...@artenum.com> 
> wrote:
> Hi everyone,
> 
> I want to call a Java application from R and have encountered some problems 
> with the way rJava deals with the system class loader.
> 
> To run my application, I use the following R script:
> 
> > library(rJava)
> > .jinit()
> > .jaddClassPath("myApp.jar")
> > rWrapper <- .jnew("org/test/RWrapper")
> > .jcall(rWrapper,"V","start")
> 
> My Java application has a plugins loading mechanism that uses a specific 
> PluginClassLoader to load plugins stored in additional JAR files (e.g. 
> plugin.jar). This PluginClassLoader is programed so that it knows and loads 
> the plugins JARs. As any Java classloader, it is a child of the system class 
> loader.
> 
> Finally, plugins not only use classes stored in their plugin.jar file, they 
> also depend on classes contained in the main myApp.jar file (the Plugin 
> interface is for example defined in the myApp.far)
> 
> In a pure Java environment, myApp.jar is known from the system class loader 
> (it is in the classpath) and thus the PluginClassLoader can load classes from 
> the plugin (it knows both about the plugin.jar and the myApp.jar files)
> 
> In the R context however, using the above script, its the RJavaClassLoader 
> that knows about the myApp.jar file. The org.test.RWrapper class is 
> instatiated by the RJavaClassLoader. The system class loader however does not 
> know about myApp.jar anymore. Neither does the PluginClassLoader. So when the 
> PluginClassLoader loads a plugin class, it can only load classes that are in 
> the plugin.jar file and as soon as a class from the myApp.jar file is 
> required by the plugin, it crashes with a java.lang.NoClassDefFoundError 
> message.
> 
> My question is: how can I force rJava to load the classpath in the system 
> classloader and not only in the RJavaClassLoader?
> 
> I cannot make the PluginClassLoader know the RJavaClassLoader as my 
> application also has to run in a non-R environment.
> 
> Thanks for your time,
> 
> Kind regards,
> 
> Ben
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 

-- 
Dr Beno�t Thi�bault
Project Manager

  Artenum Toulouse - Science & Groupware
  http://www.artenum.com

      B�timent Calfocenter
      10, rue Marguerite-Long
      31320 Castanet-Tolosan
      France
      Phone: +33 (0)5 82 95 19 00



        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to