我正在尝试将我的 tomcat 服务器连接到 MS SQL 2008 R2 服务器。网络连接不是这里的问题。
我可以在一个简单的 java 应用程序中成功连接,但是当我尝试通过 tomcat7 连接时(在我的 Windows 7 工作站以及我的 Ubuntu 12.04 服务器上尝试过。
我能够在两个 tomcat 服务器上运行示例 servlet。
我的代码:
public class DBConnector{`
private java.sql.Connection con = null;`
private final String url = "jdbc:sqlserver://my.domain.com:";`
//端口号、凭证等。这些都在标准的 java 应用程序中工作。
public DBConnector(){}
private String getConnectionUrl(){
return url+ portNumber +";databaseName="+databaseName+";selectMethod="+selectMethod+";";
}
private java.sql.Connection getConnection(){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
if(con!=null) System.out.println(getConnectionUrl());
}catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
public void queryDB(){
try{
System.out.println("Connecting...");
con= this.getConnection();
if(con!=null){
System.out.println("NotNull");
java.sql.Statement statement = con.createStatement();
String query="Select * from CAFE";
java.sql.ResultSet rs = null;
System.out.println("made rs");
rs = statement.executeQuery(query);
System.out.println("Established what it is");
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
System.out.println("Getting MetaData");`
//Omitted the rest.
它在 tomcat 中停止响应: rs = statement.executeQuery(query); 因为在控制台上,我从来没有看到“Established what it is”。
我正在为 Java 6 使用正确的 mssql 驱动程序版本。
我对此很陌生,所以很可能在这里犯了一个明显的错误。有什么建议么?