Можно импортировать только тип. 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
, и все же это явно файл класса, в котором я считаю правильным каталог.
Помогите, пожалуйста!
(И не наказывай меня за использование сценариев, я пытаюсь их очистить!)
Ответы
Ответ 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 - это пакет, а не класс в пакете. Импорт с помощью * затем делает его однозначным, что он импортирует классы.