2013-08-02 364 views
0

我正在开发使用Apache Tomcat 7.0和MySQL数据库的Web应用程序,以及后期我得到我的所有网页中一个奇怪的例外....无法初始化类com.mysql.jdbc.StringUtils

当我开始Tomcat和调用任何servlet,一个异常堆栈跟踪首先出现,其是如下 -

Aug 02, 2013 1:19:08 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [GenerateMiniStatement] in context with path [/IndianNationalBank] threw exception [null] with root cause 
java.security.AccessControlException: access denied ("java.util.PropertyPermission"  "file.encoding" "read") 
at java.security.AccessControlContext.checkPermission(Unknown Source) 
at java.security.AccessController.checkPermission(Unknown Source) 
at java.lang.SecurityManager.checkPermission(Unknown Source) 
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) 
at java.lang.System.getProperty(Unknown Source) 
at com.mysql.jdbc.StringUtils.<clinit>(StringUtils.java:70) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at in.inb.MiniStatement.GenerateMiniStatement.doPost(GenerateMiniStatement.java:64) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:277) 
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAsPrivileged(Unknown Source) 
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:309) 
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:169) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:299) 
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57) 
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

第一执行后,当我尝试调用任何servlet所述第二时间,将出现不同的异常堆栈跟踪,如下 -

Aug 02, 2013 10:54:49 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [in.inb.Login.LoginServlet] in context with path  [/SomeCompany] threw exception [Could not initialize class  com.mysql.jdbc.StringUtils] with root cause 
java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.StringUtils 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at in.inb.Login.LoginServlet.doPost(LoginServlet.java:44) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:277) 
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAsPrivileged(Unknown Source) 
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:309) 
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:169) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:299) 
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57) 
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

我的猜测是,StringUtils类没有获得对file.encoding系统属性的访问权限,并且因为该JVM无法正确加载该类。

我的猜测是对的吗? 我已经尝试了很多,但无法获得答案。我无法弄清楚问题出在哪里。请帮助我..

Thankyou非常提前。

+0

消息'无法初始化类...'意味着JVM已经尝试过并且无法加载指定的类。如果您重新启动Tomcat,并尝试再次重现此错误,这是您获得的第一个错误,还是会得到不同的错误?如果您收到其他错误,请修改您的问题以包含此错误。 –

+0

@ LukeWoodward-谢谢你的提示。编辑了这个问题。 – plutonium1991

回答

1

检查MySQL连接器JAR是否位于Web应用程序的WEB-INF/lib文件夹中,它实际上包含异常说明无法加载的类(com.mysql.jdbc.StringUtils)。

相关问题