URI taglib не обязательно указывает на реальный веб-ресурс. URI taglib должен соответствовать объявлению <uri>
в любом из файлов .tld
, присутствующих в пути к классам.
Учитывая этот факт, возможны две причины:
- Файл TLD (по крайней мере, файл JAR, содержащий его) вообще не находится в пути к классам.
- Файл TLD объявил другой URI.
У меня нет опыта работы с тегами JodaTime, поэтому я не могу понять, правильно ли это (неправильное) поведение. Лучшее, что я могу предложить, - это извлечь файл JAR, содержащий файлы TLD, используя какой-либо инструмент ZIP, а затем прочитать фактический <uri>
в файле .tld
в папке META-INF
JAR.
Если окажется, что это то же самое, то, скорее всего, у вас проблема с настройками classpath или build. Действительно ли файлы JAR присутствуют в (расширенном) файле WAR в работающей среде веб-приложения?
Сервлет 2.4, не связанный с конкретной проблемой, подразумевает JSP 2.0, а не JSP 2.1. Кроме того, почему вы используете Servlet 2.4 вместо 2.5 или даже 3.0? Glassfish 3 поддерживает Servlet 3.0.