0

まあ、私はかなり厄介な状況にあります。デスクトップ バージョン (Swing GUI) で実行すると動作するデータベース マネージャー クラスがありますが、サーブレットで同じクラスを実行すると、奇妙なエラーが発生します。繋がり。最適化のためにデータベース プーリングを使用しています。

したがって、エラーは次のようになります。

Error in Database Connection: Error getting connection to database - java.sql.SQLException: No suitable driver found for jdbc:sqlserver://isd.ktu.lt:1433;DatabaseName=LN2012_bakDB2

関連するメソッドを持つクラスは次のようになります。

    package Core;

import DataTypes.Parameters;
import Interfaces.OutputInterface;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.pool.impl.GenericObjectPool;

/**
 *
 * @author arturas
 */
public class DatabaseConnection {

    String specificError = "Error in Database Connection: ";
    OutputInterface gui = null;
    boolean allowOutput = true;
    GenericObjectPool connectionPool;
    ConnectionFactory connectionFactory;
    PoolableConnectionFactory poolableConnectionFactory;
    PoolingDriver driver;
    Connection con = null;

    public DatabaseConnection(Parameters params) {                

        // parameters and the output                
        this.gui = params.getGui();

        // activate database pool
        connectionPool = new GenericObjectPool(null);
        connectionFactory = new DriverManagerConnectionFactory(params.getDbAdr(), params.getDbUser(), params.getDbPass());
        poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
        driver = new PoolingDriver();
        driver.registerPool("GenTreeDatabase", connectionPool);        
    }

    public void openConn() {
        if (allowOutput) gui.print("Getting connection to database");
        try {
            con = DriverManager.getConnection("jdbc:apache:commons:dbcp:GenTreeDatabase");
            if (con != null) {
                if (allowOutput) gui.print("Connection to database was successful");
            }
        } catch (SQLException ex) {
            gui.err(specificError + "Error getting connection to database - " + ex);
        }
    }

    public void closeConn() {
        try {
            con.close();
            if (allowOutput) {
                gui.print("Connection to database closed successfully");
            }
        } catch (SQLException ex) {
            gui.err(specificError + ex);
        }
    }

try in メソッド openConn が呼び出されると、エラーが表示されます。誰でもこれで私を助けることができますか?

4

2 に答える 2

1

クラスパスにドライバがないため、このエラーが発生します。おそらくデスクトップアプリケーションにありました。ドライバの.jarファイルをサーブレットコンテナのグローバルクラスパスまたはアプリケーションクラスパスに配置する必要があり、それが機能するはずです。

.jar同じファイルを使用してドライバーをロードするアプリケーションが複数存在する可能性があるため、ドライバーのjarをサーバーのグローバルクラスパスに追加することをお勧めします。

于 2012-06-10T12:04:10.747 に答える
0

これを確認してください

1) .jar ライブラリが、使用している RDMS と互換性があることを確認する必要があり
ます。2) netbeans に接続用の .jar を含めたこと。

projectproperties-->libraries

3).jarをにコピーします。
C:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.26\lib
これは重要です

場所にドライバーがない場合、見つからないというエラーが発生しますが、適切なものが得られないため、バージョンに互換性がないと思われるため、使用しているSQLサーバーのバージョンは...

于 2012-06-10T12:44:33.390 に答える