過去数日間何度か試しましたが成功しませんでした。その後、ローカルでのテストは成功しましたが、サーバーに移動したときに別の問題が発生しました。
専門家がサーバー上の構成の問題を解決できることを願っています。
ここで、ローカル構成手順を書き出して共有します。
接続プーリングを構成する手順は次のとおりです。
1. tomcat でのserver.xml の構成 (このファイルが配置されているディレクトリは次のとおりです: tomcat インストールディレクトリ//conf/server.xml)
<GlobalNamingResources> と <GlobalNamingResources> の間に追加します。
<Resource name="jdbc//TomcatModule" //これが設定です"jdbc//モジュール名、ここでの私の名前は次のとおりです: TomcatModule
type="javax.sql.DataSource" //接続を構成するタイプは次のとおりです
password=""//データベースに接続するためのパスワードです。
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" //ドライバー クラスの名前
maxIdle="2" //最大一時停止時間
maxWait="5000" //接続の最大待ち時間
username="sa" //データベースに接続するアカウント名
url="jdbc:microsoft:sqlserver://localhost;DatabaseName=pubs" //接続するデータベースの名前を指定します
maxActive="4"/> //最長接続時間
2. Tomcat インストール ディレクトリ /conf/Catalina/localhost に Web フォルダーと同じ名前で新しい XML ファイルを作成します (私のファイルは TomcatModule.xml です)。
この手順は非常に重要です。この手順を行わないと、エラーが発生し、「org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'」というエラーが発生します。
この XML ファイルを作成し、メモ帳で開き、最初のステップの内容をこのファイルにコピーする限り、問題はありません。内容は次のとおりです。
<Resource name="jdbc//TomcatModule" //これが設定です"jdbc//モジュール名、ここでの私の名前は次のとおりです: TomcatModule
type="javax.sql.DataSource" //接続を構成するタイプは次のとおりです
password=""//データベースに接続するためのパスワードです。
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" //ドライバー クラスの名前
maxIdle="2"//最大一時停止時間
maxWait="5000" //接続の最大待ち時間
username="sa" //データベースに接続するアカウント名
url="jdbc:microsoft:sqlserver://localhost;DatabaseName=pubs" //接続するデータベースの名前を指定します。ここではデータベースに付属のpubsデータベースを使用しました。
maxActive="4"/> //最長接続時間
注: ここでのコンテンツ構成は、上記のファイル構成と一致している必要があります。そうでない場合、接続は成功せず、エラーは引き続き発生します: org.apache.tomcat.dbcp.dbcp.SQLNestedException: クラス '' の JDBC ドライバーを作成できません接続 URL 'null'エラー。
3.私のテスト プログラムは次のとおりです (ここでは、Jbulider2006 でテスト ページを作成しただけです。もちろん実際のプロジェクト内で)。
<%@ ページ contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.*" %>
<%@ ページインポート="javax.sql.*" %>
<%@ ページインポート="java.sql.*" %>
<html>
<頭>
<title>JDBC テスト</title>
</head>
<本文>
<%
接続 conn=null;
ステートメント stmt=null;
結果セット rs=null;
ResultSetMetaData md=null;
試す
{
コンテキスト initCtx=new InitialContext();
DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/TomcatModule");
if (ds!=null)
{
out.println("データソース<br>"+ds.toString()+"<br>");
conn=ds.getConnection();
stmt=conn.createStatement();
out.println("<br>");
rs=stmt.executeQuery("ジョブから * を選択");
md=rs.getMetaData();
out.println("<table border=1>");
out.println("<tr>");
for(int i=0;i<md.getColumnCount();i++)
{
out.println("<td>"+md.getColumnName(i+1)+"</td>");
}
while(rs.next())
{
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getString(4)+"</td>");
out.println("</tr>");
}
out.println("</テーブル>");
conn.close();
}
}
catch(例外 e)
{
out.println(e.toString());
System.out.println(e.toString());
}%>
</body>
</html>
4. これで、プログラムを TOMCAT サーバーにデプロイできるようになりました。
デプロイメントの前に、一度コンパイルして、MODULE に .war ファイルを生成させます (生成しなくても問題ありません)。
次に、プロジェクトの下で MODULE フォルダーまたは生成された .war ファイルを見つけ、MODULE フォルダーまたは .war ファイルを TOMCAT のインストール ディレクトリ/webapps にコピーします。.war ファイルをコピーした場合は、最初に TOMCAT を起動する必要があります。 TOMCAT で .war ファイル名を指定し、.war ファイルをコンパイルします。MODULE フォルダーの場合、この手順は保存できます。
5. 次に、準備した SQL SERVER2000 ドライバー パッケージを TOM CAT インストール ディレクトリ /common/lib および TOM CAT インストール ディレクトリ /webapps/ TomcatModule /WEB-INF/lib にコピーする必要があります。
これでプログラムを実行できるようになりました。