Ich muss ein paar benutzerdefinierte Funktionen für JSP-Seite implementieren und dafür muss ich benutzerdefinierte Taglib erstellen. Es sollte eine einfache Aktion sein, aber ich habe ein Problem beim ersten Schritt, wenn ich einfach eine leere Taglib hinzufüge. Ich habe eine Ausnahme:NullPointerException beim Hinzufügen benutzerdefinierte Taglib in JSP
java.lang.NullPointerException
at org.apache.tomcat.util.descriptor.tld.TldResourcePath.hashCode(TldResourcePath.java:156)
at java.util.HashMap.hash(HashMap.java:338)
at java.util.HashMap.get(HashMap.java:556)
at org.apache.jasper.compiler.TldCache.getTaglibXml(TldCache.java:95)
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:179)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:411)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1428)
at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
...
Meine benutzerdefinierte TLD (platziert in Webapp/custom.tld):
<?xml version="1.0">
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>MyLibrary</short-name>
<uri>myTagLib</uri>
</taglib>
JSP:
<%@ taglib prefix="myTag" uri="myTagLib" %>
Auch habe ich versucht, eine Funktion hinzuzufügen, in custom.tld, aber ohne Änderungen.
Kann mir jemand helfen? Was mache ich falsch?
Die Nullpointer in TldResourcePath.156 verweist auf eine fehlende URL Objekt im RldResourcePath Objekt. Möglicherweise liegt ein Problem mit Ihrer URI-Definition vor. – Luke