如何解决 Cannot inherit from final class

佳岳 2007-04-29 08:06:47
javax.servlet.ServletException: Cannot inherit from final class
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:256)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.jspdev.ch8.EncodingFilter.doFilter(EncodingFilter.java:36)


root cause

java.lang.VerifyError: Cannot inherit from final class
java.lang.ClassLoader.defineClass0(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:537)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1652)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:883)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1212)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
org.apache.xerces.impl.XMLNSDocumentScannerImpl.createContentDispatcher(XMLNSDocumentScannerImpl.java:555)
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.(XMLDocumentFragmentScannerImpl.java:249)
org.apache.xerces.impl.XMLDocumentScannerImpl.(XMLDocumentScannerImpl.java:245)
org.apache.xerces.impl.XMLNSDocumentScannerImpl.(XMLNSDocumentScannerImpl.java:110)
org.apache.xerces.parsers.IntegratedParserConfiguration.createDocumentScanner(IntegratedParserConfiguration.java:271)
org.apache.xerces.parsers.DTDConfiguration.(DTDConfiguration.java:367)
org.apache.xerces.parsers.StandardParserConfiguration.(StandardParserConfiguration.java:198)
org.apache.xerces.parsers.IntegratedParserConfiguration.(IntegratedParserConfiguration.java:182)
org.apache.xerces.parsers.IntegratedParserConfiguration.(IntegratedParserConfiguration.java:139)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:274)
java.lang.Class.newInstance0(Class.java:308)
java.lang.Class.newInstance(Class.java:261)
org.apache.xerces.util.ObjectFactory.newInstance(ObjectFactory.java:266)
org.apache.xerces.util.ObjectFactory.findJarServiceProvider(ObjectFactory.java:360)
org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:185)
org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:120)
org.apache.xerces.parsers.DOMParser.(DOMParser.java:153)
org.apache.xerces.parsers.DOMParser.(DOMParser.java:137)
org.apache.xerces.jaxp.DocumentBuilderImpl.(DocumentBuilderImpl.java:102)
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(DocumentBuilderFactoryImpl.java:88)
org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:133)
org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:112)
org.apache.jasper.compiler.JspConfig.init(JspConfig.java:213)
org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:229)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:207)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:437)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.jspdev.ch8.EncodingFilter.doFilter(EncodingFilter.java:36)


环境 :Apache Tomcat/5.0.12
java:java version "1.4.2_04"
测试程序如下:

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<%="测试JSP"%>


...全文
3561 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
佳岳 2007-05-15
  • 打赏
  • 举报
回复
好我记录下来 谢谢了
javaboy2006 2007-05-14
  • 打赏
  • 举报
回复
dom.jar
sax.jar
xalan.jar
xercesImpl.jar
用于解析xml


jdbc2_0-stdext.jar
为JDBC2.0的扩展包


jsp-api.jar
为JSP 2.0 API


jstl.jar
standard.jar
为jstl的jar包
infon 2007-05-14
  • 打赏
  • 举报
回复
帮顶
佳岳 2007-05-07
  • 打赏
  • 举报
回复
有高手 麻烦回答一下
佳岳 2007-04-29
  • 打赏
  • 举报
回复
自己找到原因了

如果TOMCAT 换成 5.0.12 的时候 这个
javax.servlet.ServletException: Cannot inherit from final class
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:256)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.jspdev.ch8.EncodingFilter.doFilter(EncodingFilter.java:36
错误是不能避免的

原因在于 WEB-INF 中LIB 目录下额包存在
测试环境是 j2sdk1.4.2_04+tomcat 5.0.12
包如下:


dom.jar
jdbc2_0-stdext.jar
jsp-api.jar
jstl.jar
sax.jar
standard.jar
xalan.jar
xercesImpl.jar


有高手解释以下包是干什么用的吗??


qingyuan18 2007-04-29
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=gb2312" language="java" %>

<%
String a ="测试JSP"
%>

<%=a%>
iouzhui 2007-04-29
  • 打赏
  • 举报
回复
javax.servlet.ServletException: Cannot inherit from final class
===============
没看 见吗?

说的很清楚了!

这是基础~~~
佳岳 2007-04-29
  • 打赏
  • 举报
回复
这个我知道 中文意思 但是
com.jspdev.ch8.EncodingFilter.doFilter(EncodingFilter.java:36)
在我的

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class EncodingFilter implements Filter {
protected FilterConfig filterconfig;
private String targetEncoding = "gb2312";

public void init(FilterConfig config) throws ServletException {
this.filterconfig = config;
this.targetEncoding = config.getInitParameter("encoding");

}

public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding);
chain.doFilter(srequest,sresponse);


}

public void setFilterConfig(final FilterConfig filterConfig){
this.filterconfig=filterConfig;
}

public void destroy() {
this.filterconfig = null;

}

}

没有用到
TRY
CATCH

不可能会出现这个问题的啊
CrazyGou 2007-04-29
  • 打赏
  • 举报
回复
不能继承一个声明为final的类

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧