Поддержка JSTL в Weblogic - PullRequest
       30

Поддержка JSTL в Weblogic

5 голосов
/ 24 марта 2011

Я пытаюсь начать работать с 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.

Ответы [ 2 ]

5 голосов
/ 24 марта 2011

Вы должны включить jstl.jar и standard.jar в папку WEB-INF / lib, а не в папку WEB-INF. Я думаю, что это решит эту проблему.

4 голосов
/ 27 января 2013

добавить библиотеку-ref в weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" 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/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
    <wls:library-ref>
        <wls:library-name>jstl</wls:library-name>
        <wls:specification-version>1.2</wls:specification-version>
        <wls:exact-match>false</wls:exact-match>
    </wls:library-ref>
</wls:weblogic-web-app>

Библиотека jstl развернута по умолчанию в WebLogic, так что об этом не стоит беспокоиться.

...