2016-07-26 6 views
7

wenn ich lokale java tomcat Seite besucht, ist der Fehler folgen, helfen Sie bitte zu überprüfen, was mit diesem falsch, dankeJava-Fehler: Meldung Ungültige TLD-Datei: siehe JSP 2.2-Spezifikation Abschnitt 7.3.1 für weitere Details

jsp Code

<%@ taglib prefix="p" uri="/WEB-INF/classes/tld/pagertag.tld"%> 

Fehlerprotokoll:

SEVERE: Servlet.service() for servlet jsp threw exception 
org.apache.jasper.JasperException: Invalid tld file: "/WEB-INF/classes/tld/pagertag.tld", see JSP 2.2 specification section 7.3.1 for more details 

at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56) 
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:445) 
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117) 
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:347) 
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:154) 
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419) 
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:484) 
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1421) 
at org.apache.jasper.compiler.Parser.parse(Parser.java:138) 
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242) 
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102) 
+0

Es sieht aus wie ein Problem beim Parsen des Dokuments. Vielleicht können Sie es komplett liefern. – Robba

+0

Stellen Sie sicher, dass der Pfad der .tld-Datei korrekt ist. Normalerweise wird es/WEB-INF/tld/und NICHT/WEB-INF/Klassen/tld –

+1

Ich Downgrade der Tomcat auf 7.0.46, das Problem war verschwunden ~~~ – Jonny

Antwort

7

In der jsp-2_2

JSP.7.3.1 Identifizieren von Tag-Bibliothekdeskriptoren Tag-Bibliothekdeskriptordateien haben Namen, die die Erweiterung .tld verwenden, und die Erweiterung gibt eine Tag-Bibliothekdeskriptordatei an. Bei der Implementierung in einer JAR-Datei müssen sich die Tag-Bibliothekdeskriptordateien im Verzeichnis META-INF oder einem Unterverzeichnis davon befinden. Bei einer direkten Bereitstellung in einer Webanwendung müssen sich die Tag-Bibliothekdeskriptor-Dateien immer im Verzeichnis WEB-INF oder einem Unterverzeichnis davon befinden. TLD Dateien sollten nicht in/WEB-INF/classes oder/WEB-INF/lib abgelegt werden und dürfen nicht in innerhalb von/WEB-INF/-Tags oder einem Unterverzeichnis davon platziert werden, es sei denn, sie werden implicit.tld und genannt Konfigurieren Sie eine implizite Tag-Bibliothek mit ihrer JSP-Version und tlib-Version.

Die .tld-Datei kann nicht in Klassen, Lib, Tags-Ordner oder Unterordner sein.

8

gemäß Dokumentation

Tag library descriptor files have names that use the extension .tld, and the extension indicates a tag library descriptor file. When deployed inside a JAR file, the tag library descriptor files must be in the META-INF directory, or a subdirectory of it. When deployed directly into a web application, the tag library descriptor files must always be in the WEB-INF directory, or some subdirectory of it. TLD files should not be placed in /WEB-INF/classes or /WEB-INF/lib, and must not be placed inside /WEB-INF/tags or a subdirectory of it, unless named implicit.tld and intended to configure an implicit tag library with its JSP version and tlib-version.

Sie Ihren Tag lib innerhalb WEB-INF platzieren/Tags mit Umbenennungs implicit.tld

+0

Danke für diesen Tipp, es funktioniert (Umbenennung in implicit.tld)! Dies bedeutet, dass ich eine Dateiumbenennung durchführen muss, damit unsere Anwendungen dem Standard entsprechen, wenn ich mit einer neueren Version von Tomcat arbeiten möchte ... – FrustratedWithFormsDesigner

0

scheint das Problem mit tomcat Version. Nach dem Ändern der Tomcat-Version von Tomcat 8 auf 7.0.55 funktioniert es gut.

+0

Tomcat 8 erzwingt die Spezifikation, wo Tomcat 7 nicht benötigt wird. – EGHM