【问题标题】:java.lang.ClassNotFoundException in Dynamic Web app JSP动态 Web 应用程序 JSP 中的 java.lang.ClassNotFoundException
【发布时间】:2015-01-03 06:47:28
【问题描述】:

我正在尝试从 Java 类中的 SQLLite DB 检索数据。 这是使用 Beans 和表单处理的 Web 应用程序的一部分”,根据此处的教程: http://www.jsptut.com/forms.jsp

我收到 java.lang.ClassNotFoundException: org.sqlite.JDBC 的持续错误

我已将 sqlite-jdbc-3.8.7.jar 添加到 java 类路径

这是我的代码:

   public int startConnection() {
         Connection c = null;
            try {
              Class.forName("org.sqlite.JDBC");
              c = DriverManager.getConnection("jdbc:sqlite:test.db");
            } catch ( Exception e ) {
              System.err.println( e.getClass().getName() + ": " + e.getMessage() );
              System.exit(0);
              return CONNECTION_FAILURE;
            }
            System.out.println("Opened database successfully");
            return CONNECTION_SUCCESSFUL;
    }

这是控制台输出:

Jan 03, 2015 2:42:15 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:webapp01' did not find a matching property.
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/7.0.57
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Nov 3 2014 08:39:16 UTC
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         7.0.57.0
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Mac OS X
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.10
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          x86_64
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JAVA_HOME:             /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_25-b17
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         /Users/hadi/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         /Users/hadi/Documents/apache-tomcat-7.0.57
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/Users/hadi/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/Users/hadi/Documents/apache-tomcat-7.0.57
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=/Users/hadi/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/Users/hadi/Documents/apache-tomcat-7.0.57/endorsed
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=UTF-8
Jan 03, 2015 2:42:15 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/hadi/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
Jan 03, 2015 2:42:15 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 03, 2015 2:42:15 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 03, 2015 2:42:15 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1296 ms
Jan 03, 2015 2:42:15 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 03, 2015 2:42:15 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.57
Jan 03, 2015 2:42:16 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 03, 2015 2:42:16 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 03, 2015 2:42:16 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 913 ms
java.lang.ClassNotFoundException: org.sqlite.JDBC
Jan 03, 2015 2:42:32 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]

请任何人解决这个问题......谢谢......

【问题讨论】:

    标签: java sqlite class jsp


    【解决方案1】:

    sqlite-jdbc-3.8.7.jar 添加到tomcat 类路径,方法是将其移动到$CATALINA_HOME/lib

    请参阅Apache Tomcat 7 - Class Loader Howto 以深入了解 Tomcat 类加载器的工作原理。部分内容如下:

    System — 此类加载器通常从 CLASSPATH 环境变量的内容初始化。所有这些类对 Tomcat 内部类和 Web 应用程序都是可见的。但是,标准的 Tomcat 启动脚本($CATALINA_HOME/bin/catalina.sh%CATALINA_HOME%\bin\catalina.bat)完全忽略了 CLASSPATH 环境变量本身的内容,而是从...构建 System 类加载器。

    【讨论】:

    • 已修复!非常感谢!
    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多