我已成功使用tomcat7将Java EE应用程序部署到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 {
}
}
}
Powerball 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--;
}
答案 0 :(得分:2)
确保true
中的server.xml
属性设置为module SessionsHelper
# Logs in the given user.
def log_in(user)
session[:user_id] = user.id
end
# Returns the current logged-in user (if any).
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
# Returns true if the user is logged in, false otherwise.
def logged_in?
!current_user.nil?
end
end
,否则war文件将不会展开,Tomcat将无法找到您的文件。