よく知られているNoClassDefFoundError:com / mysql / jdbc / StringUtilsを取得していますが、私の場合は少し異なります。MySQLをまったく使用していません。
JDK1.6を使用してPostgreSQL9.1データベースを使用しています。私のコンピューターではすべてが完全に機能します(PostgreSQLドライバーがロードされている、クラスパスの問題がないなど)が、プロジェクトを大学のサーバーにアップロードする必要があり、次のエラーが発生します。
java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.StringUtils
完全なスタックトレースは次のとおりです。
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:286)
java.sql.DriverManager.getConnection(DriverManager.java:582)
java.sql.DriverManager.getConnection(DriverManager.java:185)
elections.ConnectionManager.getConnection(ConnectionManager.java:29)
elections.daos.LoginDAO.login(LoginDAO.java:23)
elections.controllers.LoginController.doPost(LoginController.java:46)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:299)
org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
java.security.AccessController.doPrivileged(Native Method)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:208)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:197)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1770)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
これが接続を提供する私のクラスです(これは私の最初のJDBCプロジェクトです。以下のコードはスレッドセーフではないことを知っています。接続プールを使用して書き直しますが、最初に機能させる必要があります...)
static Connection conn;
public static Connection getConnection() throws Exception {
try {
String url = "jdbc:postgresql://host/database";
String username = "username";
String pwd = "password";
Class.forName("org.postgresql.Driver");
try {
conn = DriverManager.getConnection(url, username, pwd);
} catch (SQLException e) {
e.printStackTrace();
throw e;
}
} catch (ClassNotFoundException e) {
throw e;
}
return conn;
}
私はインターネットで大規模な検索を行いましたが、このような問題を抱えているのは世界で私だけのようです...他の誰もがMySQLでのみこの問題を抱えています。
MySQLドライバー(不足しているcom.mysql.jdbc.StringUtilsクラスを含む)をWEB-INF / libフォルダーに入れようとしましたが、これは役に立ちませんでした。
私が見つけた唯一の有用な情報は、おそらくエラーがどこかに隠されていることです(つまり、com.mysql.jdbc.StringUtilsが依存するクラスをロードできませんでした)が、どこを検索すればよいかわかりません。
PostgreSQLのみを使用しているのに、MySQLクラスが検索される理由がよくわかりません。
どんな種類の助けもいただければ幸いです!:)