2013-08-14 6 views
2

У меня есть файл jar, содержащий некоторые файлы тегов.Eclipse не может найти tld внутри файла jar

Моих *.tag файлов находятся внутри /META-INF/tags/ папки (баночки)

У меня также есть mytags.tld внутри /META-INF/ папок (баночка)

После пачки всех war проекта (с mytags.jar внутри WEB-INF/lib папки), он прекрасно работает в JBoss. Но Eclipse, до сих пор не может распознать тег, получает ошибку Can not find the tag library descriptor for "http://www.mycompany.com"


Есть ли способ Затмения распознать мои теги?


следуют источники:

block.tag

<%@tag description="Item do block" pageEncoding="UTF-8"%> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

<%@attribute name="id" required="true" %> 
<%@attribute name="label" required="true" %> 
<%@attribute name="description" required="false" %> 
<%@attribute name="icon" required="false" %> 

<div id="${id}" class="block"> 
    <div class="block-box ${icon}"> 
     <div class="label"> 
      <span>${label}</span> 
     </div> 
     <div class="description"> 
      ${description} 
      <jsp:doBody></jsp:doBody> 
     </div> 
    </div> 
</div> 


mytags.tld

<?xml version="1.0" encoding="UTF-8" ?> 
<taglib 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-jsptaglibrary_2_1.xsd" 
    version="2.1"> 

    <description>My Tags</description> 
    <display-name>MyTags</display-name> 
    <tlib-version>1.0</tlib-version> 
    <short-name>mytags</short-name> 
    <uri>http://www.mycompany.com</uri> 

    <tag-file> 
     <name>block</name> 
     <path>/META-INF/tags/block.tag</path> 
    </tag-file> 
</taglib> 


some.jsp

<%@page contentType="text/html; charset=ISO-8859-1" pageEncoding="UTF-8" %> 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@taglib uri="http://www.mycompany.com" prefix="mytags" %> <-- ECLIPSE MARKS ERROR HERE 
<!DOCTYPE html> 
<html> 

    <head> 
     <title>Test</title> 
    </head> 
    <body> 
     <mytags:block id="users" label="Users" icon="user"> 
      <!-- some content --> 
     </mytags:block> 
    </body> 
</html> 

Но все отлично работает в JBoss. Только затмение обвиняет ошибку.

Благодаря

+0

Какая * версия * Eclipse? И если вы повторите проверку JSP, сообщение исчезнет? – nitind

+0

Eclipse Kepler. Нет, сообщение не исчезает после повторной проверки JSP – weakleaf

+0

Является ли проект динамическим веб-проектом с банкой в ​​его папке WebContent/WEB-INF/lib или иначе на пути сборки Java? – nitind

ответ

1

Существующий отчет об ошибке https://bugs.eclipse.org/bugs/show_bug.cgi?id=330405 предлагает исправление сообщение об ошибке, чтобы указать на JSP версии 1.1, детектируемого из web.xml в качестве причины для устаревшей интерпретации TagLib URI.

Это подтверждается JSP Tag Libraries документа, http://docs.oracle.com/cd/B14099_19/web.1012/b14014/taglibs.htm#i1014427:

Как первый, определенные в спецификации JSP 1.1, то TagLib директива страницы JSP может полностью указать имя и физическое местоположение, в ВОЙНЕ структура файла, файла TLD, который определяет конкретную библиотеку тегов, как показано в следующем примере:

<%@ taglib uri="/WEB-INF/oracustomtags/tlds/mytld.tld" prefix="oracust" %> 

[..] в качестве альтернативы, как и определенные S осел спецификация JSP 1.1, директива TagLib может указать имя и относительно приложения физического местоположения JAR-файла вместо TLD файл

Оба указанных выше 2 конвенции удалился в механизм резервного, так как JSP 1.2, который введен определение определений тэгов и использование через произвольные строки taglib uri, http://docs.oracle.com/cd/B14099_19/web.1012/b14014/taglibs.htm#i1013109.

Недавняя спецификация JSP 2.1 документирует отображение URI в разделе JSP.7.3.2:

URI, описывающий библиотеку тегов отображается на пути ДВУ ресурсов, хотя в карте TagLib и запасного варианта интерпретации, которая должна быть использована, если карта не содержать URI. Карта taglib построена из явной карты taglib в web.xml (описанной в разделе JSP.7.3.3), которая расширена с неявными записями, выведенными из библиотек упакованных тегов в веб-приложении (описано в Раздел JSP.7.3. 4) и неявные записи, известные контейнеру JSP. Исходная интерпретация нацелена на случайное использование механизма, как в цикле разработки приложения «Веб-приложение» ; в этом случае URI интерпретируется как прямой путь к домену TLD (см. раздел JSP.7.3.6.2).