• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaサーブレットからSQL Server の接続ができません。)

JavaサーブレットからSQL Serverの接続ができない

このQ&Aのポイント
  • JavaサーブレットからSQL Serverの接続ができないエラーが発生しました。エラーメッセージには「TDS ログイン前応答が不完全です。対象サーバーは SQL Server 2000 以降である必要があります。」と表示されています。デバッグを行った結果、データベースへの接続が失敗することがわかりました。
  • エラーメッセージには「TDS ログイン前応答が不完全です。対象サーバーは SQL Server 2000 以降である必要があります。」と表示されています。デバッグを行った結果、データベースへの接続が失敗することがわかりました。具体的には、Class.forName(driver);の行までは正常に実行されますが、次の行のcon = DriverManager.getConnection(url,user,passwd);でエラーが発生します。
  • JavaサーブレットからSQL Serverの接続ができない問題が発生しています。エラーメッセージには「TDS ログイン前応答が不完全です。対象サーバーは SQL Server 2000 以降である必要があります。」と表示されています。デバッグを行った結果、データベースへの接続が失敗しています。該当するコードは、Class.forName(driver);の行までは正常に実行されますが、次の行のcon = DriverManager.getConnection(url,user,passwd);でエラーが発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • rooksan
  • ベストアンサー率66% (4/6)
回答No.1

接続URLのportが8080になっていますが、これはTomcatのportでは ないですか? SQLServerの場合は、規定値 1433で、変更していなければ指定する必要はないと思いますが。 url = "jdbc:sqlserver://localhost:8080;databaseName=testdb;";

参考URL:
http://msdn.microsoft.com/ja-jp/library/ms378428.aspx
foot-peng
質問者

お礼

>rooksanさん すみません、一週間以上も音信不通になりまして・・・。 結局、試行錯誤の末、自己解決しました。 (ポートは8080で大丈夫のようです。) DBに接続の際のユーザ名とパスワードが間違っていたという、凡ミスでした。。。 Microsoft SQL Server Management StudioでDB管理を行っておりましたが、その際のログインアカウント「Windows認証」でログインしていました。 「SQL server認証」のアカウントを作って試したところ、接続することができました。 以下、私が行った手順を示します。 1.Microsoft SQL Server Management Studioを起動します。 2.「Windows認証」か「SQLserver認証」でログインします。 3.「オブジェクトエクスプローラ」の「<サーバ名>」-「セキュリティ」-「ログイン」を右クリックし、「新しいログイン」を選択します。 4.以下の設定をします。 <<全般タグ>> ・ログイン名「sqlserver」(任意) ・「SQL Server認証」にチェック。 ・パスワード「sqlserver」(任意) ・「パスワードポリシー」と「パスワードの期限を適用する」と「ユーザーは次回ログイン時にパスワードを変更する」のチェックを外す。 ・「規定のデータベース」に「testdb」を選択します。 ・「規定の言語」に「Japanese」を選択します。 <<サーバーロール>> ・「sysadmin」にチェックを入れる。 <<ユーザー マッピング>> ・[「testdb」の「マップ」にチェックを入れる。 <<状態>> ・データベースエンジンに接続する権限:許可 ・ログイン:有効 5.OKをクリック。 6.以下のソースを変更。 public DatabaseAccess() { driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; url = "jdbc:sqlserver://localhost:8080;databaseName=testdb;"; user = ""; passwd = ""; } ↓ 変更後 public DatabaseAccess() { driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; url = "jdbc:sqlserver://localhost:8080;databaseName=testdb;"; user = "sqlserver"; passwd = "sqlserver"; 以上で、接続を確認できました。 お騒がせ致しました。

関連するQ&A