не может загрузить JSTL taglib во встроенном Гагатовом сервере

Я пишу веб-приложение, которое работает во встроенном Гагатовом экземпляре.

Когда я пытаюсь выполнить оператор JSTL, я получаю следующее исключение:

org.apache.jasper. JasperException:/index.jsp (1,63) PWC6188: абсолютный uri: http://java.sun.com/jsp/jstl/core не может быть разрешен или в web.xml или в файлах банки, развернутых с этим приложением

У меня есть следующее, раздражает путь к классу

  • муравей-1.6.5.jar
  • муравей-1.7.1.jar
  • ant-launcher-1.7.1.jar
  • ядро-3.1.1.jar
  • причал-6.1.22.jar
  • jetty-util-6.1.22.jar
  • jsp-2.1-6.1.14.jar
  • jsp-api-2.1.jar
  • jstl-1.2.jar
  • servlet-api-2.5-20081211.jar
  • servlet-api-2.5-6.1.14.jar
  • стандарт-1.1.2.jar

Мой web.xml похож на это:

  
      
    test  

Мой код похож на это:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  
      
        

Hello World!

<%= new java.util.Date() %>
${1+2}

Я запустил свой встроенный Гагатовый сервер как это:

Server server = new Server(80);  
WebAppContext context = new WebAppContext("pig-1.0-SNAPSHOT.war","/");
server.addHandler(context);
server.start();

Я провел прошедшие два дня, экспериментируя с различными комбинациями файлов банки, конфигураций web.xml и объявлений библиотеки тегов, но напрасно.

Как я могу разбудить встроенный Гагатовый сервер и работающий с полной поддержкой JSTL?

15
задан skaffman 28 January 2010 в 00:03
поделиться

3 ответа

Как и Марк Байерс сказал, что вы можете использовать Echo * , чтобы получить список всех файлов в текущем каталоге.

Тест или [] команда / встроенный вариант для проверки, если файл является каталогом.

Применить рекурсию, и вы закончите.

-121--2876619-
  • JSTL-1.2.jar
  • Standard-1.1.2.jar

Это сталкиваются. Удалить Standard-1.1.2.jar . Вы должны использовать Standard-1.1.2.jar только с JSTL-1.1.2.jar . Поскольку JSTL 1.2 Стандартная банка была объединена в JSTL JAR, что приводит к одному файлу jstl-1.2.jar .

5
ответ дан 1 December 2019 в 02:19
поделиться

В своем web.xml попробуйте изменить «h77p: //java.sun. com / xml / ns / j2ee / web-app_2_4.xsd ", чтобы начать с" http: // ", и посмотрите, устранит ли это ошибку.

Однако это может не быть основной причиной, так как у меня была та же ошибка при использовании jetty-maven-plugin и заголовка JSTL taglib в моем JSP:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

PWC6188: Абсолютный uri: http://java.sun.com/jsp/jstl/core нельзя разрешить ни в web.xml , ни в файлах jar, развернутых с этим приложением

Я использую готовый шаблон Spring MVC из SpringSource Tool Suite, поэтому не уверен, почему плагин Maven для Jetty подавляется им.

<build>
   <plugins>
      <plugin>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>jetty-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>
<repositories>
     <repository>
       <id>maven2-repository.dev.java.net</id>
       <name>Java.net Repository for Maven</name>
       <url>http://download.java.net/maven/2/</url>
       <layout>default</layout>
     </repository>
</repositories>

И только javax.servlet: jstl: 1.2 указан в моих зависимостях POM, поскольку теперь он устарел taglibs: standard: 1.1.2, что было предложено выше.

0
ответ дан 1 December 2019 в 02:19
поделиться

Jetty 8.0, который по умолчанию запускается при использовании jetty:run, имеет API сервлетов 3.0. Начиная с этой версии, стандарт JSTL должен быть включен, и эти таглибы не могут быть в classpath webapp, только в стандартном classpath. Однако в версии 8.0.0.M0 их забыли включить.

Указание 7.1.4.v20100610 помогло мне.

8
ответ дан 1 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: