2013-12-14 213 views
0

我有JBoss和MSSQL Server 2008. Sqljdbc.jar是在Java資源/庫,但我仍然有一個ClassNotFoundExeption無法連接到MS SQL服務器

這是我的servlet:

package work.Model; 

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.sql.*; 

public class SQLServlet extends HttpServlet { 
private static final long serialVersionUID = 1L; 

public SQLServlet() { 
    super(); 
} 

final String server = "localhost"; 
final int port = 1433; 
final String user = "work"; 
final String password = "workdb"; 
final String database = "workDB"; 
final String jdbcUrl = "jdbc:sqlserver://"+server+":"+1433+";user="+user+";password="+password+";databaseName="+database+""; 



protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 



    try { 
     System.out.println("try to load driver"); 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     System.out.println("# - Driver Loaded"); 

     Connection con = DriverManager.getConnection(jdbcUrl); 
     System.out.println("# - Connection Obtained"); 

     Statement stmt = con.createStatement(); 
     System.out.println("# - Statement Created"); 

     String loginCheck = "SELECT userID,username,password FROM USERS where username=? and password=?"; 



    } catch (Exception ex) { 

     System.out.println("Error : "+ex); 
    } 

} 

}

的錯誤是:

[STDOUT] Error : java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver from [email protected]{[email protected]{name=vfszip:/D:/Jboss/jboss-5.1.0.GA/server/default/deploy/Work.war/ 

如何正確連接MSSQL服務器?

+0

您應該儘量不要硬編碼數據庫驅動程序類,用戶,密碼,網址。這意味着對數據庫進行任何更改都會迫使您重新編譯您的web應用程序(有忘記更新某些servlet的風險),並導致很多問題。如果你不想使用J2EE(包括JBoss)提供的工具來做到這一點(谷歌「JBoss數據源」),至少你可以從屬性文件中加載它們。 – SJuan76

回答

1

嘗試將SqlJdbc.jar放入D:/Jboss/jboss-5.1.0.GA/server/default/lib文件夾並重新啓動服務器。

1

Servlet用於具有預定義文件夾結構的Web應用程序。只要您沒有爲JBoss服務器創建部署結構,您就有機會將JDBC驅動程序jar放到WEB-INF/lib文件夾中,或者在構建過程中將其複製到那裏。

另一種方法是創建一個JBoss服務,該服務在JNDI上發佈數據源並使用其上下文並在RAR部署上檢索它們。