Развертывание проекта Tomcat на веб-сервере, проблема с файлом

:) Итак, я наконец-то купил свой хостинг и пытаюсь развернуть на нем свой проект Tomcat. Сервер mochahost.com, поддержка JSP и Tomcat включена. Мой проект работает нормально на локальной машине, однако, когда я развертываю его на веб-сервере, он говорит:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /List/index.jsp:38

35: <br>    
36: <%
37: String file = application.getRealPath("/") + "default_list.txt";
38: FileReader filereader = new FileReader(file);
39: BufferedReader br = new BufferedReader(filereader);
40: String eachLine = br.readLine();
41: while (eachLine != null) {

Что может быть не так? Я думаю, что он не может получить доступ к файлу, но как мне это исправить? Спасибо!

Обновление: проблема была вызвана путём к серверу, решаемым с помощью метода Server.MapPath.

2 ответа

Решение

Да, это проблема с попыткой использовать пути к файлам в веб-приложениях: вы не можете знать, где вы будете развернуты.

У вас есть несколько вещей, которые вы можете попробовать:

  1. Запишите реальный путь к журналу, чтобы вы могли его увидеть. Как еще вы можете знать, что делать?
  2. Читать файлы из CLASSPATH с помощью getResourceAsStream() из контекста сервлета.
  3. "default_list" предполагает, что это справочные данные. Вы можете попробовать встроить его как JSON или XML, так как он постоянный.
  4. Вы не должны использовать код скриптлета в JSP. Пусть сервлет передает эти данные в JSP.
  5. Выучи JSTL. Вы будете рады, что сделали.
  6. Поместите справочные данные в базу данных и прочитайте их оттуда.

Программа прерывается на строке 38. Это означает, что проблема заключается в пути, который вы получаете из метода getRealPath. Я предлагаю вам проанализировать, какой путь вы получаете с помощью этого метода, и имеет ли он смысл (то есть, если текстовый файл, который вы пытаетесь получить, находится по этому пути).

Другие вопросы по тегам