关于Invalid syntax for function signature in TLD异常的处理

来源:互联网 发布:淘宝人生免费txt下载 编辑:程序博客网 时间:2024/05/16 17:03

异常情况:

org.apache.jasper.JasperException: Invalid syntax for function signature in TLD.  Tag Library: myfn, Function: findCategoryNameById
 at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
 at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:277)
 at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.getMethod(Validator.java:1642)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.processSignature(Validator.java:1629)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.access$400(Validator.java:418)
 at org.apache.jasper.compiler.Validator$ValidateVisitor$1FVVisitor.visit(Validator.java:1605)
 at org.apache.jasper.compiler.ELNode$Function.accept(ELNode.java:139)
 at org.apache.jasper.compiler.ELNode$Nodes.visit(ELNode.java:214)
 at org.apache.jasper.compiler.ELNode$Visitor.visit(ELNode.java:256)
 at org.apache.jasper.compiler.ELNode$Root.accept(ELNode.java:61)
 at org.apache.jasper.compiler.ELNode$Nodes.visit(ELNode.java:214)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.validateFunctions(Validator.java:1609)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.prepareExpression(Validator.java:1614)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:750)
 at org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:950)
 at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
 at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
 at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:898)
 at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1536)
 at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
 at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
 at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
 at org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
 at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
 at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1853)
 at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
 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)
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
 at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
 at com.cast.web.controller.ControllerServlet.ListBooks(ControllerServlet.java:57)
 at com.cast.web.controller.ControllerServlet.doGet(ControllerServlet.java:45)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.cast.filter.SetAllCharacterEcodingFilter.doFilter(SetAllCharacterEcodingFilter.java:45)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
 at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
 at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
 at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Thread.java:744)

异常原因:

<tlib-version>1.1</tlib-version>
 <short-name>myfn</short-name>
 <uri>http://www.cast.com/jsp/functions</uri>

 <function>
  <name>findCategoryNameById</name>
  <function-class>com.cast.web.Functions</function-class>
  <function-signature>java.lang.String
  findCategoryNameById(java.lang.String)</function-signature>
 </function>

tld文件配置出错,function-signature标签里面,函数声明跟返回类型必须在同一行,解决方法:

 <tlib-version>1.1</tlib-version>
 <short-name>myfn</short-name>
 <uri>http://www.cast.com/jsp/functions</uri>

 <function>
  <name>findCategoryNameById</name>
  <function-class>com.cast.web.Functions</function-class>
  <function-signature>java.lang.String  findCategoryNameById(java.lang.String)</function-signature>
 </function>

问题解决!

0 0
原创粉丝点击