我已经成功地将Java EE应用程序部署到了tomcat7的openshift中。我部署了war文件并加载了欢迎页面,但是当我的应用尝试将输入的.txt文件读取到应用中时,找不到它。任何帮助,将不胜感激。
我的输入文件(2)在Eclipse项目中的/ WEB-INF文件夹中。
这是我的启动servlet中的相关代码:
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 { } } }
强力球servlet readnums(与Megamillions servlet readnums相同)
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属性设置为truein server.xml,否则war文件将不会展开,并且Tomcat将无法找到您的文件。
unpackWARs
true
server.xml