【发布时间】:2017-05-17 02:00:22
【问题描述】:
我已经导入了所有必要的库文件,当我使用 JUnit 进行单元测试时它工作正常。但是,当我在 webapp 中运行此代码时,我得到了 ClassNotFoundException。我已经注释掉了所有没有引起 发生的异常。似乎“connection = new RConnection()”这一行 导致问题。
我还尝试导入不同版本的 Rserve 库文件 Rserve-0.6.5,但没有成功。
[更新]
我已经使用 Eclipses 选项将 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)
任何帮助表示赞赏。
【问题讨论】:
标签: java r servlets classnotfoundexception