2013-12-14 3 views
0

У меня есть JBoss и MSSQL Server 2008. Sqljdbc.jar находится в ресурсах/библиотеках Java, но у меня все еще есть ClassNotFoundExeption.Не удается подключиться к MS SQL SERVER

Это мой сервлет:

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 Server?

+0

Вы должны попробовать не жестко кодировать класс драйвера DB, пользователя, пароль, URL-адреса. Это означает, что внесение любых изменений в вашу БД заставит вас перекомпилировать ваш webapp (с риском забыть обновить некоторые сервлеты) и вызвать массу проблем. Если вы не хотите использовать инструменты J2EE (включая JBoss), чтобы сделать это (google "Jaboss datasource"), по крайней мере, вы можете загрузить их из файла свойств. – SJuan76

ответ

1

Попробуйте поместить SqlJdbc.jar в папку D:/Jboss/jboss-5.1.0.GA/server/default/lib и перезагрузить сервер.

1

Сервлеты используются в веб-приложении, которое имеет предопределенную структуру папок. Как только вы не создадите структуру развертывания для сервера JBoss, у вас есть шанс поместить JDBC-драйвер в папку WEB-INF/lib или скопировать его там во время сборки.

Другим подходом является создание службы JBoss, которая публикует источник данных в JNDI и использует его контекст и извлекает их при развертывании RAR.

Смежные вопросы