Подтвердить что ты не робот

Можно импортировать только тип. ABC разрешает пакет

(Я читал другие вопросы по этой теме, но ни один из них не помог)

Хорошо, я пытаюсь импортировать Java-класс в свой JSP файл, но Tomcat дает мне ошибку:

org.apache.jasper.JasperException: невозможно компилировать класс для JSP:

An error occurred at line: [16] in the generated java file: [I:\path\to\index_jsp.java]
Only a type can be imported. org.runas.XKCDUtils resolves to a package

An error occurred at line: 7 in the jsp file: /index.jsp
XKCDUtils cannot be resolved
4:  String data = null;
5:  int finalComic = 1;
6:  int comicNo = 1;
7:  finalComic = XKCDUtils.getFinalComic();
8: 
9:  if (request.getParameter("page") != null)
10:         comicNo = Integer.parseInt(request.getParameter("page"));

Оператор import в моем JSP файле:

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>

Соответствующий раздел моей структуры каталогов:

webapps
`-ROOT
 `-index.jsp
 |-WEB-INF
  `-web.xml
  |-classes
   `-org
    `-runas
     `-XKCDUtils.class

Я запутался, потому что org.runas.XKCDUtils resolves to a package, и все же это явно файл класса, в котором я считаю правильным каталог.

Помогите, пожалуйста!

(И не наказывай меня за использование сценариев, я пытаюсь их очистить!)

4b9b3361

Ответ 1

Хорошо, это странно. Я разделил импорт на три импорта,

<%@page import="java.io.*" %>
<%@page import="java.net.*" %>
<%@page import="org.runas.XKCDUtils" %>

и он волшебным образом решил работать. Затем, когда я изменил импорт обратно,

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>

волшебным образом решили продолжать работать.

Возможно, это связано с перезагрузкой Tomcat? Ну, теперь это работает.

Ответ 2

У меня была та же проблема; разрешен путем остановки сервера (Tomcat в моем случае) и восстановления проекта.

Ответ 3

Я не знаю, что именно вызвало ошибку, но я изменил

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %>

к

<%@page import="java.io.*, java.net.*, org.runas.*" %>

и это сработало. Моя интерпретация ошибки заключается в том, что по какой-то причине Tomcat считает, что XKCDUtils - это пакет, а не класс в пакете. Импорт с помощью * затем делает его однозначным, что он импортирует классы.