Я пытаюсь начать работать с Java EE, используя Weblogic, и я не могу заставить работать теги JSTL, в простейшем коде я получаю следующие ошибки при развертывании моего приложения:
index.jsp: 1: 4: библиотека тегов не может быть
найдено с этим URI. Возможные причины
может быть, что URI неверен, или
что были ошибки при разборе
файла .tld. <% @ taglib prefix = "c"
URI = "http://java.sun.com/jsp/jstl/core"%>
^ ---- ^ index.jsp: 1: 4: без тегов
библиотека может быть найдена с этим URI.
Возможные причины могут быть, что URI
неверно, или что там было
ошибки при разборе .tld
файл. <% @ taglib prefix = "c"
URI = "http://java.sun.com/jsp/jstl/core"%>
^ ---- ^ index.jsp: 2: 4: без тегов
библиотека может быть найдена с этим URI.
Возможные причины могут быть, что URI
неверно, или что там было
ошибки при разборе .tld
файл. <% @ taglib prefix = "sql"
URI = "http://java.sun.com/jsp/jstl/sql"%>
^ ---- ^ index.jsp: 2: 4: без тегов
библиотека может быть найдена с этим URI.
Возможные причины могут быть, что URI
неверно, или что там было
ошибки при разборе .tld
файл. <% @ taglib prefix = "sql"
адреса URI = "http://java.sun.com/jsp/jstl/sql"%>
Я скачал файлы taglib с этого сайта: http://archive.apache.org/dist/jakarta/taglibs/standard/
и поместите два jar (standard.jar и jstl.jar) в мой каталог WEB-INF. Я также положил туда все файлы TLD из arcihve.
После того, как я попытался сослаться на них в своем файле web.xml, и после проверки я получаю следующую ошибку:
Проверка XML началась. проверка
Файл: / C: /Users/Brodyaga/Documents/NetBeansProjects/Eshop1/web/WEB-INF/web.xml ...
Ссылочная сущность на
"nbres: /org/netbeans/modules/j2ee/ddloaders/catalog/resources/XMLSchema.dtd".
Ссылочная сущность на
"Nbres: /org/netbeans/modules/j2ee/ddloaders/catalog/resources/datatypes.dtd".
cvc-complex-type.2.4.a: неверный
контент был найден начиная с
элемент 'taglib'. Один из
{ "http://java.sun.com/xml/ns/javaee":description,
«http://java.sun.com/xml/ns/javaee":display-name,
«http://java.sun.com/xml/ns/javaee":icon,
«http://java.sun.com/xml/ns/javaee":distributable,
«http://java.sun.com/xml/ns/javaee":context-param,
«http://java.sun.com/xml/ns/javaee":filter,
«http://java.sun.com/xml/ns/javaee":filter-mapping,
«http://java.sun.com/xml/ns/javaee":listener,
«http://java.sun.com/xml/ns/javaee":servlet,
«http://java.sun.com/xml/ns/javaee":servlet-mapping,
«http://java.sun.com/xml/ns/javaee":session-config,
«http://java.sun.com/xml/ns/javaee":mime-mapping,
«http://java.sun.com/xml/ns/javaee":welcome-file-list,
«http://java.sun.com/xml/ns/javaee":error-page,
«http://java.sun.com/xml/ns/javaee":jsp-config,
«http://java.sun.com/xml/ns/javaee":security-constraint,
«http://java.sun.com/xml/ns/javaee":login-config,
«http://java.sun.com/xml/ns/javaee":security-role,
«http://java.sun.com/xml/ns/javaee":env-entry,
«http://java.sun.com/xml/ns/javaee":ejb-ref,
«http://java.sun.com/xml/ns/javaee":ejb-local-ref,
«http://java.sun.com/xml/ns/javaee":service-ref,
«http://java.sun.com/xml/ns/javaee":resource-ref,
«http://java.sun.com/xml/ns/javaee":resource-env-ref,
«http://java.sun.com/xml/ns/javaee":message-destination-ref,
«http://java.sun.com/xml/ns/javaee":persistence-context-ref,
«http://java.sun.com/xml/ns/javaee":persistence-unit-ref,
«http://java.sun.com/xml/ns/javaee":post-construct,
«http://java.sun.com/xml/ns/javaee":pre-destroy,
«http://java.sun.com/xml/ns/javaee":message-destination,
«http://java.sun.com/xml/ns/javaee":locale-encoding-mapping-list}'
ожидается. [12] Проверка XML
завершено.
Мой web.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
</web-app>
Я считаю, что XML-схема, указанная в начале файла web.xml, не допускает теги taglib, но я понятия не имею, какую схему мне следует использовать.
Я бы очень признателен за пошаговое руководство по добавлению поддержки jstl в weblogic. Заранее спасибо.
UPDATE
Удаление этих из web.xml заканчивается ошибками, такими как:
index.jsp: 18: 14: класс обработчика тега
не был найден
"Org.apache.taglibs.standard.tag.rt.core.ForEachTag".
и по содержимому файла c.tld ясно, что weblogic понимает, что forEach соответствует org.apache.taglibs.standard.tag.rt.core.ForEachTag, но не может найти класс. Но я могу вручную найти этот класс в standard.jar.