当前位置: 代码迷 >> 综合 >> taglib definition not consistent with specification version
  详细解决方案

taglib definition not consistent with specification version

热度:21   发布时间:2023-12-12 04:59:21.0

问题描述:

从TongWeb6、tomcat7及之前老版本上移植到TongWeb7上的应用报错如下:

[2020-12-17 15:50:05 447] [SEVERE] [http-nio2-9060-exec-9] [other] [Parse error in application web.xml file at file:/opt/......./defaultroot.war/WEB-INF/web.xml]
org.xml.sax.SAXParseException; systemId: file:/opt/...../defaultroot.war/WEB-INF/web.xml; lineNumber: 642; columnNumber: 13; Error at (642, 13) : taglib definition not consistent with specification version
    at com.tongweb.web.util.digester.Digester.createSAXException(Digester.java:1907)
    at com.tongweb.web.util.digester.Digester.createSAXException(Digester.java:1939)
    at com.tongweb.web.util.digester.Digester.startElement(Digester.java:1193)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)

Caused by: java.lang.IllegalArgumentException: taglib definition not consistent with specification version
    at com.tongweb.web.util.descriptor.web.TaglibLocationRule.begin(WebRuleSet.java:1289)
    at com.tongweb.web.util.digester.Digester.startElement(Digester.java:1190)
    ... 104 more

原因:

JavaEE规范更新对web.xml中 的taglib格式做了变更,不兼容老格式。

解决办法:

 修改web.xml, 如下:

修改前:

<taglib><taglib-uri>/custom</taglib-uri><taglib-location>/WEB-INF/tld/custom.tld</taglib-location>
</taglib>
<taglib><taglib-uri>/test</taglib-uri><taglib-location>/WEB-INF/tld/test.tld</taglib-location>
</taglib>

修改后增加<jsp-config>:

<jsp-config><taglib><taglib-uri>/custom</taglib-uri><taglib-location>/WEB-INF/tld/custom.tld</taglib-location></taglib><taglib><taglib-uri>/test</taglib-uri><taglib-location>/WEB-INF/tld/test.tld</taglib-location></taglib>
</jsp-config>

  相关解决方案