У нас есть большая установка веб-приложения, использующая Apache/Tomcat/Jasper и jboss. В среде разработки JSP компилируются на лету. К сожалению, есть один пакет, который не может быть импортирован компиляцией на лету. Для некоторых классов использование полных ссылок вместо импорта работает, но не для всех. Все рассматриваемые классы находятся в одном банке (nonEjb.jar). Предварительная компиляция JSP работает нормально, но, конечно, очень неудобно делать это каждый раз, когда нам нужно изменить один из затронутых файлов. Эта проблема существует уже довольно давно, и я действительно хотел бы решить ее, так как собираюсь проделать некоторую работу в пострадавшем районе.
Вот небольшая тестовая страница. Это не удается для первого импорта. Два импортируемых класса очень похожи, единственная существенная разница заключается в размещении их пакетов. (И да, я проверил правильность объявлений пакетов для обоих классов.)
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page errorPage="/error.jsp" %>
<%@ page import="com.elementk.lms.product.otr.OtrProviderType" %>
<%@ page import="com.elementk.lms.product.course.CourseType" %>
<html>
<body>
<hr>
Displaying the page...
<br>
<%= OtrProviderType.B24x7_PROVIDER.getId() %> value
<br>
<%= CourseType.SELF_STUDY.getId() %> value
</hr>
</body>
<html>
Результат:
09 Mar 2010 21:29:40,555 ERROR [K] [RequestTimingFilter.doFilter:65] Unable to compile class for JSP:
An error occurred at line: 6 in the generated java file
The import com.elementk.lms.product.otr cannot be resolved
Я получаю ту же ошибку, если удаляю импорт и полностью уточняю ссылку (как com.elementk.lms.product.org.OtrProviderType).
Что может быть причиной того, что компилятор JSP находит один из классов, а другой нет?