Вызов методов Java изнутри сервлета - PullRequest
0 голосов
/ 25 ноября 2018

Я новичок в программировании сервлета, и я пытаюсь создать и записать файл из следующего метода java -

public void file() throws FileNotFoundException, UnsupportedEncodingException {
    PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
    writer.println("The first line");
    writer.println("The second line");
    writer.close();
    System.out.println("file created");
}

И я хочу вызвать его из сервлета следующим образом:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    TryMethod tryMethod = new TryMethod();
    tryMethod.file();
}

Кто-нибудь может подсказать, почему он не выполняется из сервлета?Этот метод вызывается при вызове из основного метода.

1 Ответ

0 голосов
/ 25 ноября 2018

Нет, обычно нет проблем с запуском конструкторов или методов из сервлета (по крайней мере, для классов, которые являются частью вашего WebApp).И если там, где возникнет проблема, вы получите исключение / ошибку.

Так что, если вы не видите вывод на печать, скорее всего, код не был выполнен.Это может быть другой метод (doPost вместо doGet) или другой сервлет (проверьте ваш URL и сопоставление сервлета), или может быть, что ваш обновленный класс не был развернут или найден - или он был развернут, но использовал другой.

Первое, что я хотел бы добавить, это добавить System.out в метод doGet ().Пока он не напечатан, вам не нужно беспокоиться о своем собственном классе.

Да, и просто для подтверждения очевидного, ваш код использует текущий каталог запуска веб-сервера (относительное имя файла)который вы, возможно, не проверили для файла.Попробуйте абсолютный путь или сделайте его настраиваемым.Однако ваш system.out должен быть напечатан независимо.

...