相关疑难解决方法(0)

臭名昭着的java.sql.SQLException:找不到合适的驱动程序

我正在尝试将已启用数据库的JSP添加到现有的Tomcat 5.5应用程序(GeoServer 2.0.0,如果有帮助的话).

该应用程序本身与Postgres谈话很好,所以我知道数据库已启动,用户可以访问它,所有这些好东西.我想要做的是在我添加的JSP中的数据库查询.我已经在Tomcat数据源示例中使用了配置示例,非常开箱即用.必要的taglibs位于正确的位置 - 如果我只有taglib refs就不会发生错误,因此它会找到那些JAR.postgres jdbc驱动程序postgresql-8.4.701.jdbc3.jar位于$ CATALINA_HOME/common/lib中.

这是JSP的顶部:

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/mmas">
  select current_validstart as ValidTime from runoff_forecast_valid_time
</sql:query>
Run Code Online (Sandbox Code Playgroud)

来自$ CATALINA_HOME/conf/server.xml的相关部分,其内部<Host>依次是<Engine>:

<Context path="/gs2" allowLinking="true">
  <Resource name="jdbc/mmas" type="javax.sql.Datasource"
      auth="Container" driverClassName="org.postgresql.Driver"
      maxActive="100" maxIdle="30" maxWait="10000"
      username="mmas" password="very_secure_yess_precious!"
      url="jdbc:postgresql//localhost:5432/mmas" />
</Context>
Run Code Online (Sandbox Code Playgroud)

这些行是webapps/gs2/WEB-INF/web.xml中标记的最后一行:

<resource-ref>
  <description>
     The database resource for the MMAS PostGIS database
  </description>
  <res-ref-name>
     jdbc/mmas
  </res-ref-name>
  <res-type>
     javax.sql.DataSource
  </res-type>
  <res-auth>
     Container
  </res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)

最后,例外:

   exception
    org.apache.jasper.JasperException: Unable …
Run Code Online (Sandbox Code Playgroud)

postgresql tomcat jdbc geoserver

72
推荐指数
4
解决办法
12万
查看次数

使用Eclipse/Tomcat自动将第三方jar添加到WEB-INF/lib

我在Eclipse上设置了一个动态Web项目,我使用Tomcat 7作为我的Web服务器.它似乎没有自动将我添加到我的库中的第三方JAR放到我的构建路径上的WEB-INF/lib文件夹中.有没有办法可以自动完成?每次我寻找一个答案,我觉得像这样.

那我该怎么做呢?有没有办法配置我的构建路径来执行此操作?

java eclipse tomcat jar buildpath

49
推荐指数
1
解决办法
7万
查看次数

ClassNotFoundException com.mysql.jdbc.Driver

这个问题可能在这里问了很多次.做了一些谷歌搜索上述错误并做了一些更新后,我无法理解为什么我仍然会收到该错误.我已经在类路径中放了我的驱动程序 - mysql-connector-java-5.1.5-bin:

Java_Home\jre\lib\
Java_Home\jre\lib\ext\
Java_Home\lib
Run Code Online (Sandbox Code Playgroud)

我用来连接mysql数据库的代码是:

try{
Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mail","root","");

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select message_body from deadletter");
String dbtime;
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
} 

con.close();

}
catch (SQLException e) {
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        }

    }
Run Code Online (Sandbox Code Playgroud)

以上异常的完整堆栈跟踪是:

java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)  
    at java.lang.Class.forName(Class.java:169)
    at mail.main(mail.java:114)  
Run Code Online (Sandbox Code Playgroud)

现在,我在这里做错了什么?

java exception jdbc

35
推荐指数
5
解决办法
22万
查看次数

我在哪里为Tomcat的连接池放置JDBC驱动程序?

所以我已经弄清楚了我的错误,现在我只是在寻找一些关于究竟发生了什么的见解.我正在使用Apache Tomcat版本7.0.32.我正在使用本教程为JDBC设置池.在我的META-INF文件夹中,我创建了一个context.xml文件并将其放在那里.

<?xml version="1.0" encoding="UTF-8"?>

<Context>
    <Resource type="javax.sql.DataSource" name="jdbc/gmustudent"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/official"
        username="root" password="root"
        maxActive="100" maxIdle="20" minIdle="15" initialSize="15" maxWait="10000" />
</Context>
Run Code Online (Sandbox Code Playgroud)

我写这篇文章时遇到了这个错误

WARNING: Unexpected exception resolving reference
java.sql.SQLException: com.mysql.jdbc.Driver
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:699)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:631)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:485)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:143)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)
    at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:539)
    at org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:237)
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:843)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
    at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1061)
    at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:671)
    at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:270)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at …
Run Code Online (Sandbox Code Playgroud)

java tomcat connection-pooling jdbc

27
推荐指数
1
解决办法
5万
查看次数

我应该如何在基于servlet的应用程序中连接到JDBC数据库/数据源?

我有一个外部MySQL服务器,设置和工作正常.我在Eclipse中创建了一个数据库连接,可以在Data Source Explorer选项卡中查看数据库.

现在,我有一个需要访问该数据库的servlet.我该怎么做?有没有办法引用在数据源资源管理器中创建的数据库连接,还是我必须两次定义所有内容?

另外,打开连接的最佳方法是什么?我已经mysql-connector-java-5.1.11-bin.jar包含了该文件,并且我发现了两种有效的方法:

MysqlDataSource d = new MysqlDataSource();
d.setUser("user");
d.setPassword("pass");
d.setServerName("hostname.com");
d.setDatabaseName("db");
Connection c = d.getConnection();
Run Code Online (Sandbox Code Playgroud)

Connection c = DriverManager.getConnection("jdbc:mysql://hostname.com/db","user","pass");
Run Code Online (Sandbox Code Playgroud)

两者都不是最佳的,因为首先,它们都使用硬编码的字符串.这是一个Java EE Web应用程序项目,是否有一个放置连接数据的好地方?或者有没有办法放弃所有这些并只使用数据源资源管理器中的连接?

tomcat servlets datasource jdbc

19
推荐指数
1
解决办法
7万
查看次数

如何将JDBC mysql驱动程序添加到Eclipse项目中?

  1. 我已经下载了mysql-connector-java-5.1.24-bin.jar
  2. lib在项目中创建了一个文件夹并将jar放在那里.
  3. project-> build path->的属性添加JAR并选择上面的JAR.
  4. 我还是得到的 java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/mysql

我使用的是mysql 5.5代码:

package DBTest;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.util.*;

/**
 * Servlet implementation class TenUsers
 */
@WebServlet("/TenUsers")
public class TenUsers extends HttpServlet {
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        PrintWriter out = response.getWriter();
        String mySqlUrl = "jdbc:mysql://localhost:3306/mysql";

        Properties userInfo = …
Run Code Online (Sandbox Code Playgroud)

java mysql servlets jdbc driver

13
推荐指数
2
解决办法
10万
查看次数

如何在不面对java.lang.ClassNotFoundException的情况下将JAR库添加到WAR项目中?Classpath vs Build Path vs/WEB-INF/lib

我应该如何添加JAR库在Eclipse中一个WAR项目没有遇到java.lang.ClassNotFoundExceptionjava.lang.NoClassDefFoundError

CLASSPATH环境变量似乎并没有工作.在某些情况下,我们将JAR文件添加到Eclipse项目的Build Path属性中以使代码编译.我们有时需要将JAR文件放在/WEB-INF/libJava EE Web应用程序的文件夹中,以使代码在该JAR内的类上运行.

我不完全理解为什么CLASSPATH不起作用,在哪些情况下我们应该将JAR添加到Build Path以及何时应该放置这些JAR /WEB-INF/lib.

eclipse jar war classpath java-ee

10
推荐指数
1
解决办法
2万
查看次数

运行时java.lang.ClassNotFoundException:com.mysql.jdbc.Driver(eclipse/maven/tomcat)

我在运行tomcat'java.lang.ClassNotFoundException:com.mysql.jdbc.Driver'时收到此错误.我正在使用Eclipse(Indigo,J2EE版本)/ Maven(m2e-wtp)/ Tomcat 7.0的组合.我已将此依赖项包含在我的pom文件中,用于我的Web应用程序(从头开始构建).

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我在'Problems'视图中没有得到任何编译错误,但是当我从'Servers'视图运行Tomcat服务器时,我得到了这些错误.它清楚地表明Tomcat无法找到Class并且它是classpath配置错误,我希望maven会处理这个问题.

我查看了与'java.lang.ClassNotFoundException:com.mysql.jdbc.Driver'相关的其他问题,但没有太多帮助.

我非常感谢任何帮助.

/**这是我加载驱动程序的方式*/

static {
        DriverAdapterCPDS cpds_Customer = new DriverAdapterCPDS();
        try {                        cpds_Customer.setDriver(productConfig.getProperty("dbcp.connection.customer.driver_class"));

        } catch (ClassNotFoundException e) {
            // log.error("setDriver Exception " + e);
            e.printStackTrace();
        }
               }
Run Code Online (Sandbox Code Playgroud)

mysql eclipse tomcat maven-2 jdbc

7
推荐指数
1
解决办法
2万
查看次数

ClassNotFoundException:com.mysql.jdbc.Driver.用于Web应用程序的JDBC MySQL驱动程序

所以我有一个MySQL JDBC驱动程序的.jar文件,它位于我的库源文件夹下,我有以下代码:

public static Connection getConnection() throws SQLException {
        Connection conn = null;
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String url = "jdbc:mysql://50.56.81.42:3306/GUEST_BOOK";
            String user = "user";
            String password = "pass";

            conn = (Connection) DriverManager.getConnection(url, user, password);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }catch(InstantiationException e){
            e.printStackTrace();
        }catch(IllegalAccessException e){
            e.printStackTrace();
        }
            return conn;

    }
Run Code Online (Sandbox Code Playgroud)

但是,它总是给我这个错误:

INFO: Server startup in 645 ms
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at gbook.DbHelper.getConnection(DbHelper.java:14)
    at gbook.DbHelper.getGuestBook(DbHelper.java:51)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) …
Run Code Online (Sandbox Code Playgroud)

java eclipse jar jdbc

6
推荐指数
1
解决办法
2万
查看次数

为什么我在HttpServletRequest上获得指向ServletFileUpload的NoClassDefFoundError?

我最近开始使用JMeter在我的电脑上本地加载测试我的webapp.我有一个用于上传图像的jsp页面.图像由我的servlet处理.当我今天尝试这个过程时,我得到以下异常/错误:

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
    org.apache.commons.fileupload.servlet.ServletFileUpload.isMultipartContent(ServletFileUpload.java:68)
    spyder.servlets.imageProcessing.ImageProcessingServlet.uploadEditedImagesToDB(ImageProcessingServlet.java:527)
    spyder.servlets.imageProcessing.ImageProcessingServlet.doPost(ImageProcessingServlet.java:153)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Run Code Online (Sandbox Code Playgroud)

这是我的servlet中的异常所引用的代码 -

boolean isPart = ServletFileUpload.isMultipartContent(req);
Run Code Online (Sandbox Code Playgroud)

....是的,我已经import在课堂上提出了所有必要的陈述.

我不记得对我的系统上的任何会导致此问题的任何更改.这个过程总是运行没有任何问题,所以我不明白是什么导致它现在这样失败.我认为,在我使用JMeter之后失败了......

java tomcat servlets file-upload noclassdeffounderror

5
推荐指数
1
解决办法
1万
查看次数