2011-01-06 4 views
3

У меня возникли проблемы с загрузкой моей страницы JSP Java-класса, который находится в файле jar. Сообщение я получаю по-видимому, указывает на класс не найден исключение:Где я помещаю файлы jar в Tomcat 6?

Jan 6, 2011 12:21:45 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 72 in the jsp file: /xmlloader.jsp 
FactArray cannot be resolved to a type 
69:   sourceType = "1"; 
70: } 
71: 
72: FactArray fa = new FactArray(); 
73: Fact f; 
74: 
75: /***********************/ 

Тип FactArray является один из моих классов в пакете com.mypackage.fact.FactArray, который существует в myJar.jar. myjar.jar - отдельный проект Java (с использованием NetBeans, но я не думаю, что это важно).

Я включил пакет в моем JSP следующим образом:

<%@ page import="com.mypackage.fact.*" %> 

развернуть мой веб-сайт и JSP-страницы в Tomcat 6 в виде файла WAR. Я включаю myjar.jar в эту WAR в WEB-INF/lib, но это не работает. Я попытался поместить myjar.jar в мою папку tomcat/lib, но это тоже не работает.

Я несколько раз отказывался от сервера между изменениями. Здесь я прочитал целую кучу вопросов, которые говорят «поместите это в WEB-INF/lib», но это не работает, поэтому я задаю свой вопрос.

Где мне нужно размещать обычные файлы JAR, чтобы их подхватили Tomcat?

+0

Я надеюсь, что этот код помещен перед его объявлением '<% @ page import =" com.mypackage.fact. * "%>' –

+0

yup, декларация перед кодом ... – Simon

ответ

1

Убедитесь, что в коде есть правильные импортеры; в зависимости от того, как вы настроили свой env, поместите банки в webapps/ROOT/lib

9

Ввод /WEB-INF/lib папка развернутого webapp должна работать.

Если это не сработает, то возможные причины:

  • ЕАО не содержит нужный класс на всех (выписка с зип инструмента и проверить)
  • Там опечатка в вашем декларация импорт и/или класса (чувствительность к регистру ума!)

Unrelated к проблеме, используя скриптлетов не лучший Практик е. Рассмотрим servlet.

+0

Хмм, это интересный комментарий. Можете ли вы сказать, почему вы думаете, что у меня есть скриптлет (я думал, что у меня есть сервлет). – Simon

+0

... подождите, я понял ... но это все еще интересно. Но теперь я думаю, что у меня есть пробел в знаниях. Вместо этого сценария, что бы я сделал? – Simon

+0

Начать здесь: [Как избежать Java-кода в JSP-файлах?] (Http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files) – BalusC