0

我正在尝试将我的 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 驱动程序版本。

我对此很陌生,所以很可能在这里犯了一个明显的错误。有什么建议么?

4

1 回答 1

0

解决它。降级为:

java版本

java版本“1.6.0_24”

现在工作正常。通过搜索引擎来到这里的人;参考这个: Driver.getConnection hangs using SQLServer driver and Java 1.6.0_29

于 2012-07-07T04:46:20.643 回答