我已经在Tomcat 7上部署了我的Rest API。
它部署在以下路径:
/var/lib/tomcat7/webapps/myproject
我有一个Jar文件保存在这个位置:
/home/user/executor/datacollector.jar
从我的应用程序运行此jar时出现问题。使用此代码调用时它没有运行。
我运行它的代码是:
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "/home/user/executor/datacollector.jar");
Process p = pb.start();
ResultStream resultStream = new ResultStream(p.getInputStream());
Thread thread = new Thread(resultStream , "resultStream");
thread.start();
public class ResultStream implements Runnable {
private static Logger logger = Logger.getLogger("ResultStream");
private BufferedReader reader;
public ResultStream(InputStream is) {
this.reader = new BufferedReader(new InputStreamReader(is));
}
public void run() {
try {
String line = reader.readLine();
logger.info("line - "+line);
while (line != null) {
logger.info(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
logger.error("IOException in executing jar",e);
// e.printStackTrace();
}
catch (Exception e) {
logger.error("Error in executing jar",e);
// e.printStackTrace();
}
}
}
路径中是否有任何错误,因为它位于Tomcat的webapps文件夹之外。
请指出我的错误。
答案 0 :(得分:0)
如果您的tomcat实例由另一个用户(例如单独的“tomcat”用户)运行,则它可能无权访问[user's]主目录中的文件。
尝试将jar(以及java代码中的引用路径)移动到tomcat目录中的“lib”文件夹。