在Java中使用Rserve时ClassNotFoundException
我已经导入了所有必要的库文件,当我使用JUnit进行单元测试时,它可以正常工作。但是,当我在webapp中运行此代码时,我得到一个ClassNotFoundException。我已经注释掉了所有没有引起 例外情况将发生。似乎是“connection=new RConnection()”这一行 这是问题的根源 我还尝试导入不同版本的Rserve库文件Rserve-0.6.5,但没有成功 [更新] 我已经使用eclipse选项将Rserve和Rengine jar添加到我的项目的构建路径中 代码:在Java中使用Rserve时ClassNotFoundException,java,r,servlets,classnotfoundexception,Java,R,Servlets,Classnotfoundexception,我已经导入了所有必要的库文件,当我使用JUnit进行单元测试时,它可以正常工作。但是,当我在webapp中运行此代码时,我得到一个ClassNotFoundException。我已经注释掉了所有没有引起 例外情况将发生。似乎是“connection=new RConnection()”这一行 这是问题的根源 我还尝试导入不同版本的Rserve库文件Rserve-0.6.5,但没有成功 [更新] 我已经使用eclipse选项将Rserve和Rengine jar添加到我的项目的构建路径中 代码:
非常感谢您的帮助。好的,我尝试了这些方法,并使其正常工作
好吧,我试过这些东西,并且成功了
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class RServerAccessor implements ProductInfoDAO {
private RConnection connection;
public List<Product> getProducts(String path) {
List<Product> list = new ArrayList<Product>();
try {
connection = new RConnection();
//connection.eval("source('~/Desktop/Food/workspace/mcApp2/rScripts/ReceiptReader.R')");
//REXP raw = connection.eval("getProducts(\"" + path + "\")");
//String text = raw.asString();
//System.out.println(text);
// String[] items = text.split("\n");
// for(String item: items){
// list.add(new GroceryProduct(item));
// }
} catch (RserveException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
connection.close();
}
return list;
}
}
Jan 02, 2017 9:27:09 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet Service
java.lang.ClassNotFoundException: org.rosuda.REngine.Rserve.RserveException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at ctrl.Service.init(Service.java:41)