2015-05-08 45 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的帮助!