sinxsoft

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

tomcat8和7关于自定义tag的处理区别

  今天将一直运行在tomcat-7.0.29(jdk1.6)上的应用迁移到tomcat-8.0.26(jdk1.7)上面,老显示如下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
org.apache.jasper.JasperException: /clientLogin.jsp (line: 4, column: 0) null
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)
    org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:325)
    org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:358)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:461)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
    org.apache.jasper.compiler.Parser.parse(Parser.java:139)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

  经过多方研究试验,终于找到原因,原来:自定义标签uiviewTag的定义方式是这样的:

1
2
3
4
5
<tlib-version>1.0</tlib-version>
<jsp-version>1.0</jsp-version>
<short-name>uiviewTag</short-name>
<uri>/uiviewTag</uri>
<description>页面上的特殊标签</description>

  web.xml

1
2
3
4
<taglib>
        <taglib-uri>/uiviewTag</taglib-uri>
        <taglib-location>/WEB-INF/tlds/uiviewTag.tld</taglib-location>
 </taglib>

  而在jsp引入的时候是这样的(tomcat-7.0.29),但运行正常:

1
<%@ taglib uri="uiviewTag" prefix="uiviewTag"%>

  注意,uri="uiviewTag"并没有斜杠"/",在tomcat-8.0.26里面必须带斜杠:

1
<%@ taglib uri="/uiviewTag" prefix="uiviewTag"%>

  否则就会报上述错误,不知道tomcat8稳定版是否有此问题。

  看来版本升级也会暗藏玄机啊。

 

posted on   sinxsoft  阅读(1959)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2006-11-17 sql server 2005
点击右上角即可分享
微信分享提示