Ответ 1
Убедитесь, что для атрибута unpackWARs
установлено значение true
в server.xml
, иначе военный файл не будет расширен, и Tomcat не сможет найти ваш файл.
Я успешно развернул приложение Java EE для openshift с помощью tomcat7. Я развернул файл войны и загрузил страницу приветствия, но когда мое приложение пытается прочитать входной файл .txt в приложение, он не может его найти. Любая помощь будет оценена.
Мои входные файлы (2) находятся в папке /WEB -INF в моем проекте в eclipse.
Это мой соответствующий код из моего сервлета загрузки:
public void doPost(HttpServletRequest req,
HttpServletResponse resp) throws ServletException, IOException {
// 11 lines of code setting strings according to input parameters
// from startup jsp which has forms for submitting operations
if ("Dates and Draws".equals(dates)) {
Powerball p = new Powerball();
Megamillions m = new Megamillions();
String path = this.getServletConfig().getServletContext().getRealPath("/WEB-INF");
p.appPath = path; // appPath is a class variable
m.appPath = path;
p.readnums(req, resp); // App is not reading input files in readnums methods
m.readnums(req, resp);
try {
// code for output using readnums methods, reading input files
} finally {
}
}
}
Считывание сервлета Powerball (то же, что и чтение сообщений сервлета Megamillions)
void readnums(HttpServletRequest req,
HttpServletResponse resp) throws ServletException, IOException , FileNotFoundException {
int i,j;
String Temp;
String [] Temp2 = new String [80];
String path = appPath + "/powerballnumbers.txt";
File file_check = new File (path);
if (!file_check.exists()) {
errorMessage = "Input file not found"; //This is what gets displayed
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h3>" + errorMessage + "</h3>");
out.println("<br><br>");
out.println("<form action=\"Startup\" method=\"get\"");
out.println("Go back to previous page: ");
out.println("<br><br>");
out.println("<input type=\"submit\" name=\"action\" value=\"Go Back to previous page\">");
out.println("</form>");
out.println("</body>");
out.println("</html>");
out.close();
return;
} else {
errorMessage = "";
}
draws = 1;
BufferedReader br = null;
br = new BufferedReader (new FileReader(new File(path)));
while ((Temp = br.readLine()) != null) {
if (Temp.isEmpty()) break;
Temp2 = Temp.split("\\s+");
int LastNonEmpty = -1;
for (i = 0; i < Temp2.length; i++) {
if (Temp2[i] != "") {
LastNonEmpty += 1;
Temp2[LastNonEmpty] = Temp2[i];
}
}
drawdate [draws] = Temp2 [0];
j = 1;
for (i = 1; i <= 5; i++) {
Temp = Temp2 [j];
nums [draws][i] = Integer.parseInt(Temp); // nums is class variable
j ++;
}
Temp = Temp2 [6];
xball [draws] = Integer.parseInt(Temp); // xball is class variable
draws++;
}
br.close();
draws--;
}
Убедитесь, что для атрибута unpackWARs
установлено значение true
в server.xml
, иначе военный файл не будет расширен, и Tomcat не сможет найти ваш файл.