Не могу создать логин JSP - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь следовать примеру из книги «Начало JSP, JSF и Tomcat». Я считаю, что это как-то связано с разрешениями, но я не знаю, стоит ли их менять. Я установил tomcat, и большинство папок принадлежат root.

Используемые мной файлы можно найти здесь .

У меня есть класс MyLog. java в $CATALINA_HOME/webapps/ROOT/WEB-INF/classes/MyClasses/MyLog.java, -rw-r--r-- 1 root root MyLog.java. Я только что скопировал его из папки с github, я не изменил разрешения и в книге не сказано, что я должен их менять.

/* MyLog.java - Implements a log class */
package MyClasses;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
public class MyLog {
  private static final SimpleDateFormat TIME_FMT =
                       new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
  private static PrintWriter log = null;
  public MyLog(String logpath) throws IOException {
    log = new PrintWriter(new FileWriter(logpath, true));
    }
  public static synchronized void println(String s) {
    log.println(TIME_FMT.format(new java.util.Date()) + " - " + s);
    log.flush();
    }
  public static synchronized void close() {
    log.close();
    }
  }

Тогда у меня также есть файл $CATALINA_HOME/webapps/ROOT/tets/log_on.jsp. Папка tests и файл log_on.jsp принадлежат мне.

<%@page language="java" contentType="text/html"%>
<%@ page import="MyClasses.*"%>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>Switch the log ON</title>
  </head>
  <body>
    <%
      MyLog log = (MyLog)application.getAttribute("logFile");
      if (log == null) {
        try {
          log = new MyLog("logs/mylog.log");
          application.setAttribute("logFile", log);
          log.println("Logging enabled");
          out.println("Logging enabled");
        } catch (Exception e) {
          out.println(e.getMessage());
        }
      } else {
        log.println("Attempt to enable logging");
        out.println("Logging was already enabled");
      }
    %>
  </body>
</html>

Когда я открываю браузер с адресом http://localhost:8080/tests/log_on.jsp, я получаю logs/mylog.log (No such file or directory).

Я думаю Я должен изменить владельца папки $CATALINA_HOME/logs с root на моего пользователя и MyLog.java, но тогда почему бы книге не сказать что-нибудь. Было бы хорошо, если бы после установки Tomcat я просто сделал sudo chown -R myuser $CATALINA_HOME, чтобы избежать этих ошибок? Если нет, что я должен сделать, чтобы этот пример работал правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...