我正在尝试将我的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:";`
// PORT NUMBER,CREDENTIALS等。这些都适用于标准的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);因为在控制台上,我从未看到“确定它是什么”。
我正在为Java 6使用正确的mssql驱动程序版本。
我对此很新,所以很可能在这里犯了一个明显的错误。有什么建议吗?
答案 0 :(得分:0)
修正了它。降级为:
java版“1.6.0_24”
现在正常工作。 那些通过搜索引擎来到这里的人;参考这个: Driver.getConnection hangs using SQLServer driver and Java 1.6.0_29