###前提・実現したいこと
Linuxサーバーを構築、Webアプリを作成したところ、
別サーバーのSQLServerへの接続でエラーが発生します。
Eclipse上で実行した場合は接続できるのですが、
Tomcatにデプロイしブラウザで実行すると接続できません。
###発生している問題・エラーメッセージ
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host 192.168.10.174¥MSSQL_E01, port 1433 has failed. Error: "192.168.10.174¥MSSQL_E01: ??????????????. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
###該当のソースコード
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletTest")
public class ServletTest extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); response.setContentType("text/html; charset=UTF-8"); String connectionUrl = "jdbc:sqlserver://192.168.10.174¥¥MSSQL_E01;" + "databaseName=DB01;user=User001;password=******;"; Connection con = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); con = DriverManager.getConnection(connectionUrl); String SQL = "SELECT TOP 10 * FROM TABLE001"; stmt = con.createStatement(); rs = stmt.executeQuery(SQL); response.setContentType("text/html; charset=UTF-8"); while (rs.next()) { out.println("<br />"); out.println(rs.getString(1) + " " + rs.getString(2)); } } catch (Exception e) { out.println(e); e.printStackTrace(); } finally { if (rs != null) try { rs.close(); } catch(Exception e) {} if (stmt != null) try { stmt.close(); } catch(Exception e) {} if (con != null) try { con.close(); } catch(Exception e) {} } }
}
###試したこと
同じ接続方法でJavaアプリを作成し同じサーバーから実行したところ、正常に接続できました。
###補足情報(言語/FW/ツール等のバージョンなど)
【Webサーバー】
Centos7
Apache2.4.6 + Tomcat7.0.76
openjdk version 1.8.0_151
【DBサーバー】
WindowsServer2012
SQLServer2014
【開発環境】
Eclipse Oxygen(Tomcat7)
【JDBCドライバ】
mssql-jdbc-6.2.2.jre8.jar