最近使用jstl 的 forTokens 抛出一下异常 前提条件使用jboss容器,后来发现是因为
项目的jstl.jar和 jboss.war下的 jstl.jar 冲突所致
所以解决办法如下
%jbossroot%server\default\deploy\jboss-web.deployer下的jstl 覆盖到
你项目下的...\WEB-INF\lib的jstl
一下是异常信息 供参考
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 123 in the jsp file: /contactus.jsp
The method setItems(String) in the type ForTokensTag is not applicable for the arguments (Object)
120: <span class="k_title" style="color:#333;">涓北涓笓缃戞牎鏈嶅姟鐑嚎锛 /span><br />
121: <p><c:if test="${(sysinfor.servcephone==null or ''==sysinfor.servcephone)==false}">
122:
123: <c:forTokens items="${sysinfor.servcephone}" delims="," var="phone" varStatus="state">
124: <c:out value="${phone}"/>
125: <c:if test="${state.index==0}">锛 4灏忔椂鏈嶅姟鐑嚎锛 /c:if> <br />
126: </c:forTokens>
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
note The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.
项目的jstl.jar和 jboss.war下的 jstl.jar 冲突所致
所以解决办法如下
%jbossroot%server\default\deploy\jboss-web.deployer下的jstl 覆盖到
你项目下的...\WEB-INF\lib的jstl
一下是异常信息 供参考
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 123 in the jsp file: /contactus.jsp
The method setItems(String) in the type ForTokensTag is not applicable for the arguments (Object)
120: <span class="k_title" style="color:#333;">涓北涓笓缃戞牎鏈嶅姟鐑嚎锛 /span><br />
121: <p><c:if test="${(sysinfor.servcephone==null or ''==sysinfor.servcephone)==false}">
122:
123: <c:forTokens items="${sysinfor.servcephone}" delims="," var="phone" varStatus="state">
124: <c:out value="${phone}"/>
125: <c:if test="${state.index==0}">锛 4灏忔椂鏈嶅姟鐑嚎锛 /c:if> <br />
126: </c:forTokens>
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
note The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.