не удается разрешить тип JSP-компиляции вручную развертывание в Tomcat - PullRequest
0 голосов
/ 23 марта 2019

Я новичок в веб-разработке на Java. Я пытаюсь развернуть веб-приложение в Apache Tomcat (9.0.17). Я установил ОС Linux, в которой предварительно установлен Java OpenJDK. Я не могу скомпилировать JSP.

Вывод "java -version" в терминале:

openjdk version "1.8.0_202"
OpenJDK Runtime Environment (build 1.8.0_202-b26)
OpenJDK 64-Bit Server VM (build 25.202-b26, mixed mode)

Я поместил свой Java-пакет в TOMCAT_INSTALLATION_DIR / webapps / app / WEB_INF / classes / .here TOMCAT_INSTALLATION_DIR - это каталог, в который я извлек файл apache-tomcat-9.0.17.tar.gz. Внутри каталога классов, у меня есть пакет Java с именем ABC. Внутри я положил Test.java

Вот код в Test.java

package abc;
public class Test{
    public  String f(){
            return ("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
    }
    public Test(){
        System.out.println("I am created");
    }
}

Я успешно скомпилировал его и поместил в тот же каталог, где находился мой файл Test.java (внутри каталога abc).

Я создал web.xml в папке WEB-INF. содержимое внутри web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>app</display-name>
  <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

У меня есть файл index.jsp внутри каталога app / . Содержание JSP:

<%@ page  import="abc.*"%>
<!DOCTYPE html>
<html>
<head>

<title>Insert title here</title>
</head>
<body>
    <%
    Test cc=new Test();
    cc.f();
    %>
</body>
</html>

Я запустил apache с помощью команды ./cataline.sh в каталоге bin, который находится в каталоге установки. Затем я открываю localhost: 8080 / app URI. Я получил ошибку

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [10] in the jsp file: [/index.jsp]
Test cannot be resolved to a type
7: </head>
8: <body>
9:  <%
10:     Test cc=new Test();
11:     cc.f();
12:     %>
13: </body>


An error occurred at line: [10] in the jsp file: [/index.jsp]
Test cannot be resolved to a type
7: </head>
8: <body>
9:  <%
10:     Test cc=new Test();
11:     cc.f();
12:     %>
13: </body>


Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)

1 Ответ

1 голос
/ 23 марта 2019

Спасибо за подробные инструкции в вопросе.Я настроил веб-приложение по этим деталям и обнаружил две проблемы:

  1. Это not WEB_INF but WEB-INF.Пожалуйста, проверьте, действительно ли имя папки - WEB-INF.
  2. Вот updated index.jsp, чтобы возвращаемое значение отображалось на веб-странице.Код в файле JSP выполняется на сервере tomcat, и любая строка System.out.println регистрируется в журналах сервера (т. Е. TOMCAT_INSTALLATION_DIR / logs / catalina.out).Аналогично, значение, возвращаемое при вызове функции, не будет отображаться, если вы не используете <%= variable %>.
<%@ page  import="abc.*"%>
<!DOCTYPE html>
<html>
<head>

<title>Insert title here</title>
</head>
<body>
    <%
    Test cc=new Test();%>
    <%= cc.f() %>
</body>
</html>

В случае, если эти изменения не сработают, не могли бы вы вставить скриншотвся структура папок всех файлов в каталоге установки Tomcat?Я спрашиваю об этом, так как все остальное правильно, и это сработало для меня.

Структура моей локальной папки установки Моя локальная страница индекса WebApp

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