Eclipse を使用して Java で基本的な TCP サーバーを作成しています。クライアントから特定のパケットを受信した後、MSSQL ストアド プロシージャを実行しようとしています。すべてをログに記録できますが、行を挿入しようとすると、次のエラーが表示されます。
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
解決策をグーグルで検索しようとしましたが、何も機能せず、エラーが発生し続けます。これが私のクラスパスxmlです(jarファイルがあります):
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="lib" path="/home/leandro/workspace/LHub/sqljdbc4.jar"/>
<classpathentry exported="true" kind="lib" path="/home/leandro/workspace/LHub/sqljdbc.jar"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="output" path="bin"/>
</classpath>
これは、挿入用の db クラスへの接続です。
package servers;
import java.sql.*;
public class LServerDBConn {
private Statement stmt;
private String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String url = "jdbc:microsoft:sqlserver://192.168.x.x;databaseName=XXX";
private String DBuser = "sa";
private String DBpassword = "123123";
public void connectionText(String query) throws ClassNotFoundException,SQLException {
Class.forName(this.DriverName);
Connection con = DriverManager.getConnection(this.url, this.DBuser, this.DBpassword);
this.stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("EXEC SPI_TK103_PACKET" + query);
if (rs.next()) {
System.out.println("DBConnection success");
} else {
System.out.println("DBConnection failure");
}
con.close();
}
}
これは私のメインクラスにあります:
LServerDBConn con = new LServerDBConn();
con.connectionText(new String(buf, 0, bytes_read));
助けてくれてありがとう。
[編集] ファイルに問題があるようです。プロジェクトはファイルを読み取っていないため、クラスを見つけることができません。JTDSで試してみましたが、同じことが起こります。私はいくつかの設定が欠けていると思います。