Вопрос-ответ

Java error: Only a type can be imported. XYZ resolves to a package

Ошибка Java: можно импортировать только тип. XYZ преобразуется в пакет

Я получаю сообщение об ошибке: "Можно импортировать только тип. XYZ преобразуется в пакет".

Кто-то здесь объяснил причину, но я не уверен, что я должен сделать, чтобы исправить это. К вашему сведению: я использую Eclipse. Я добавил код, который выполняет импорт ниже. Импорт java.util.* работает нормально.

 <%@ page import="java.util.*"%>
<%@ page import="org.eresearch.knowledgeportal.model.Category"%>
<%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao"%>

<%
CategoryDao catDao = new CategoryDao();
ArrayList<Category> catList = catDao.selectCategory();

//
%>

Редактировать: фактическая ошибка приведена ниже:

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

An error occurred at line: 7 in the generated java file
Only a type can be imported. org.eresearch.knowledgeportal.model.Category resolves to a package
Переведено автоматически
Ответ 1

Ну, на самом деле вы не предоставляете достаточно подробностей о своем веб-приложении, но я предполагаю, что у вас есть JSP с чем-то подобным:

<%@ page import="java.util.*,x.y.Z"%> 

И x.y.Z не может быть найден в пути к классу (т. Е. Отсутствует под WEB-INF/classes ни в JAR WEB-INF/lib).

Дважды проверьте, что WAR, который вы развертываете на Tomcat, имеет следующую структуру:

my-webapp
|-- META-INF
| `-- MANIFEST.MF
|-- WEB-INF
| |-- classes
| | |-- x
| | | `-- y
| | | `-- Z.class
| | `-- another
| | `-- packagename
| | `-- AnotherClass.class
| |-- lib
| | |-- ajar.jar
| | |-- bjar.jar
| | `-- zjar.jar
| `-- web.xml
|-- a.jsp
|-- b.jsp
`-- index.jsp

Или что JAR, который связывается, x.y.Z.class присутствует под WEB-INF/lib.

Ответ 2

Хорошо, я только что решил это. В последнем импорте я добавил ";", скопировав другие примеры кода. Я думаю, требуется стандартное окончание строки.

Итак

<%@ page import="java.util.*" %>
<%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao" %>
<%@ page import="org.eresearch.knowledgeportal.model.Category" %>

стало

 <%@ page import="java.util.*" %>
<%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao" %>
<%@ page import="org.eresearch.knowledgeportal.model.Category;" %>
Ответ 3

Если вы неправильно напишете имя класса или класс отсутствует в classpath , JSP-процессор скажет, что он "преобразуется в пакет", а не что он не существует. Сегодня это сводило меня с ума, поскольку я продолжал не видеть допущенную мной опечатку.

Ответ 4

Я получил эту ошибку в Netbeans. Как и в случае с большинством странных ошибок, подобных этой, которые появляются из ниоткуда, я устраняю ее, переходя в свойства проекта, изменяя исходный / двоичный формат (неважно на какой, просто что-то другое) и выполняя очистку и сборку.

java jsp tomcat