2015-05-08 62 views
1

我試圖從Spring上開發的Java應用程序連接到postgresql DB。java.lang.ClassNotFoundException:org.postgresql.Driver whilte試圖從春天連接

奇怪的是,如果我將它作爲java應用程序運行,它工作正常。

當您嘗試在服務器上運行它,它trows異常

拋出java.lang.ClassNotFoundException:org.postgresql.Driver 在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase。 java:1305) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.CBTD.database.BaseDeDatos.establecerConexion(BaseDeDatos.java:31) ....

Spring(STS)和postgresql之間是否有任何不兼容?

控制器代碼:

@RequestMapping(value = "/inicio", method = RequestMethod.GET) 
public String ObtenerUsuario(@RequestParam(required=true) String user, @RequestParam(required=true) String pass){ 

    LoginExpert login = new LoginExpert(); 
    if (login.validarUsuario(user, pass)){ 
     return "inicio"; 
    }else{ 
     return "login"; 
    } 

} 

的中間類

public boolean validarUsuario(String user, String pass){ 

    TablaUsuario tu = new TablaUsuario(); 
    Usuario us = new Usuario(); 
    try { 
     us = tu.buscarUsuario(user); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return (us.getContrasena().equals(pass)); 

} 

其中I訪問DB(這一部分作爲運行Java應用程序正常工作)

public Usuario buscarUsuario(String nombre) throws SQLException{ 

    String sql = "SELECT * from usuario WHERE nombre_usuario = '"+nombre+"'"; 

    BaseDeDatos.getInstancia().establecerConexion(); 
    ResultSet rs = BaseDeDatos.getInstancia().ejecutarQuery(sql); 

    Usuario us= new Usuario(); 
    while(rs.next()){ 
     us.setNombreUsuario(rs.getObject(2).toString()); 
     us.setContrasena(rs.getObject(3).toString()); 
     us.setActivo(rs.getBoolean(4)); 
    } 


    BaseDeDatos.getInstancia().cerrarConexion(); 

    return us; 

} 

回答

1

類嘗試將porstgresql驅動程序放入WEB-INF/lib文件夾中

+0

對不起,但...我該怎麼做? – teresita

+0

WEB-INF目錄是您的應用程序的根目錄,包含庫,配置文件和類。所有庫應該放在WEB-INF/lib目錄中。您應該下載PostgreSQL jdbc驅動程序並將其放入您的lib目錄中。 – Vlad

+0

試過,但沒有工作... – teresita

1

我alraedy修復它。我需要添加在pom.xml文件PostgreSQL的依賴

<dependency> 
     <groupId>postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>9.1-901-1.jdbc4</version> 
    </dependency> 

現在的作品完美的罰款=) 感謝FPR的幫助!