Хобрук: Ваш путь к мастерству в программировании

Импорт классов Java в JSP

Это проблема.

Я разработал веб-приложение с NetBeans 7, Tomcat 7 и hsqldb; на моем рабочем столе все в порядке.

Когда я загружаю свои java-файлы (пакеты .class, .jsp и .jar) на свой сайт и пытаюсь загрузить страницу jsp, которая импортирует класс, содержащийся в пакете (класс FunzioniSessione в пакете it.swlab.util), я получаю следующую ошибку:

org.apache.jasper.JasperException: Unable to compile class for JSP:  
An error occurred at line: 6 in the generated java file 
Only a type can be imported. it.swlab.util.FunzioniSessione resolves to a package 

An error occurred at line: 7 in the jsp file: /index.jsp 
FunzioniSessione cannot be resolved to a type 
4: <% 
5: synchronized(this) 
6: { 
7: FunzioniSessione funzioniSessione = new FunzioniSessione(); 
8: String percorso = config.getServletContext().getRealPath("/"); 
9: funzioniSessione.inizializza(session,request,response,percorso,"infocar"); 
10: boolean connesso = session.getAttribute("utenteConnesso") != null; 

An error occurred at line: 7 in the jsp file: /index.jsp 
FunzioniSessione cannot be resolved to a type 
4: <% 
5: synchronized(this) 
6: { 
7: FunzioniSessione funzioniSessione = new FunzioniSessione(); 
8: String percorso = config.getServletContext().getRealPath("/"); 
9: funzioniSessione.inizializza(session,request,response,percorso,"infocar"); 
10: boolean connesso = session.getAttribute("utenteConnesso") != null; 

Stacktrace: 
 org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93) 
 org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) 
 org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451) 
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:328) 
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:307) 
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:295) 
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565) 
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:309) 
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) 
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) 
 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.33 logs. 

Чтобы избежать некоторых очевидных ответов, я добавляю дополнительную информацию:

  1. Пакет, содержащий класс FunzioniSessione (с именем funzioniComuni.jar), находится в папке WEB-INF\lib.
  2. Я не могу просматривать журналы, как предполагает примечание в трассировке стека, потому что у меня нет доступа к папке журналов сервера Tomcat моего провайдера. 3 Директива для импорта <%@page import="it.swlab.util.FunzioniSessione"%> Я пробовал также с ";" в конце (<%@page import="it.swlab.util.FunzioniSessione;"%>), но безуспешно.

Жду предложений.

Спасибо

24.09.2011

  • Ошибка означает, что класс отсутствует в пути к классам среды выполнения. В основном это то же самое, что и NoClassDefFoundError в обычном коде Java (если бы вы писали код Java в классах сервлетов Java, а не в файлах JSP, это было бы более понятно). Какой хост вы используете? Как вы развертываете веб-приложение? В виде отдельного файла WAR или набора отдельных файлов, представляющих расширенное содержимое WAR? 25.09.2011

Ответы:


1

Находится ли FunzioniSessione в вашем пути к классам? Обычно мы храним классы в web-inf\classes, которые уже находятся в onclasspth. Можете ли вы убедиться, что каталог развертывания имеет эту структуру с вашим классом в ожидаемом пакете?

24.09.2011
  • Прочтите вступительный пост. Пакет, содержащий класс FunzioniSessione (с именем funzioniComuni.jar), находится в папке WEB-INF\lib. 24.09.2011
  • вот почему - это папка lib в пути к классам? 24.09.2011
  • Обычно папка Tomcat WEB-INF\lib по умолчанию находится в пути к классам, я не знаю, так ли это для моего провайдера. Я надеюсь, что это так. В чем еще может быть проблема? 28.09.2011
  • да, некоторые в некоторых контейнерах (включая старые версии tomcat), это не путь к классам, что может вызвать проблему. 30.09.2011
  • Я не думаю, что Tomcat 7 — старая версия Tomcat. Любые другие предложения? 15.10.2011
  • Новые материалы

    Блоги, которые обязательно нужно прочитать специалистам по обработке и анализу данных :
    Добро пожаловать в 2020! Новый год и новое десятилетие. Поскольку мы начинаем новый и захватывающий год в науке о данных, важно, чтобы профессионалы открыли для себя лучшие блоги по науке о..

    Универсальный базовый доход
    Универсальный базовый доход В последние годы концепция всеобщего базового дохода (УБД) набирает обороты как все более эффективное решение для борьбы с растущим неравенством доходов и..

    Освоение Python для анализа финансовых данных: руководство по получению данных о доходах от акций
    Если вы хотите научиться получать данные о доходах от акций с помощью Python, то это руководство для вас! В этой статье мы рассмотрим несколько примеров сбора данных о доходах от акций. Мы..

    Абсолютно имеет смысл.
    Абсолютно имеет смысл. Мой репетитор даже предложил то же самое. Одна проблема, с которой я столкнулся, заключается в том, что для каждой из категорий не было ярлыка «хорошо». Если я перебираю..

    МАШИННОЕ ОБУЧЕНИЕ И EDA
    Каковы шаги в машинном обучении Определение проблемы Генерация гипотез Извлечение данных Исследование данных Прогнозное моделирование Развертывание модели Зачем нам ЭДА? Идентификация..

    В чем основные различия между ReactJS и React-Native?
    В чем основные различия между ReactJS и React-Native? Что я узнал, создавая веб-приложения, а затем мобильные приложения на React React-Native существует уже около 2 лет и стал..

    LeetCode — Умножение строк
    Постановка задачи Даны два неотрицательных целых числа num1 и num2 , представленные в виде строк, вернуть произведение num1 и num2 , а также представлен в виде строки. Примечание . Вы..