我試圖從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;
}
對不起,但...我該怎麼做? – teresita
WEB-INF目錄是您的應用程序的根目錄,包含庫,配置文件和類。所有庫應該放在WEB-INF/lib目錄中。您應該下載PostgreSQL jdbc驅動程序並將其放入您的lib目錄中。 – Vlad
試過,但沒有工作... – teresita