Мне нужно реализовать несколько пользовательских функций для страницы JSP, и для этого мне нужно создать собственный taglib. Это должно быть простое действие, но на первом этапе у меня возникла проблема, когда я просто добавляю пустой taglib. Я получил исключение:NullPointerException при добавлении пользовательского taglib в 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)
...
Мой собственный TLD (помещенный в 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" %>
Кроме того, я пытался добавить некоторые функции в custom.tld, но без каких-либо изменений.
Может кто-нибудь мне помочь? Что я делаю не так?
NullPointerException в точках TldResourcePath.156 к отсутствующему объекту URL в RldResourcePath Object. Возможно, возникла проблема с вашим определением URI. – Luke