Problema con hibernate/struts/servlet postgresql

di il
3 risposte

Problema con hibernate/struts/servlet postgresql

Salve avrei bisogno di una mano per un problema che mi sta tormentando da una settimana in pratica uso tomcat 8.039 con postgresql 9.4 e hibernate 5, ho due progetti uno standard java e uno dinamic, li collego tra di loro mediante il deployment automatico in eclipse mars carico tutti i jar relativi creo le varie cartelle html,js,css, e login.html nella cartella web-content il problema sommariamente sta in questo:
create le mie due servlet di prova TestServlet e LoginServlet nella cartella del progetto standard deployato e compilato nel progetto dinamico carico, configurato nel web.xml e tutto sul server inserisco url path http://localhost:8080/Corso2/html/servlet.htm e tutto funziona regolare solo che stiamo parlando di una servlet richiamata TestServlet che scrive codice nella servlet con metodo getwriter, non appena lancio il login.html si apre il form inserisco username e password mi esce questa fastidiosa pagina 404 pagina non trovata e' come se la servlet di login che dovrebbe richiamare altre due pagine in html loginOk.html o loginError.html in base alla query che deve trovare nella classe utente con classe Dao non funge in pratica sulla consolle di eclipse non ce nessuna attivita' di query. ora vi posto tutto.

librerie

antlr-2.7.7.jar
dom4j-1.6.1.jar
geronimo-jta_1.1_spec-1.1.1-sources.jar
hibernate-commons-annotations-5.0.0.Final.ja
hibernate-core-5.0.2.Final.jar
hibernate-jpa-2.1-api-1.0.0.final.jar
jandex-2.0.0.Final.jar
javassist-3.20.0-GA.jar
jboss-logging-3.3.0.Final.jar
jdbc-stdext-2.0.jar
jta.jar
ojdbc14.jar
postgresql-9.4.1212.jar
xml-apis-2.0.2.jar
antlr-2.7.7.jar
dom4j-1.6.1.jar
geronimo-jta_1.1_spec-1.1.1-sources.jar
hibernate-commons-annotations-5.0.0.Final.ja
antlr-2.7.7.jar
dom4j-1.6.1.jar
geronimo-jta_1.1_spec-1.1.1-sources.jar
hibernate-commons-annotations-5.0.0.Final.ja
aopalliance-1.0.jar
aspectj-weaver.jar
aspectjrt.jar
bsf-2.3.0.jar
commons-beanutils-1.9.2.jar
commons-chain-1.2.jar
commons-dbcp-1.4.jar
commons-digester-2.1.jar
commons-fileupload-1.3.2.jar
commons-io-1.1.jar
commons-logging-1.1.1.jar
commons-pool2-2.0.jar
commons-validator-1.4.0.jar
ehcache.jar
jakarta-oro.jar
oro-2.0.8.jar
servlet
standard-1.0.6.jar
struts-1.3.10-all.jar
struts-core-1.3.10.jar
struts-el-1.3.10.jar
struts-extras-1.3.10.jar
struts-faces-1.3.10.jar
struts-mailreader-dao-1.3.10.jar
struts-scripting-1.3.10.jar
struts-taglib-1.3.10.jar
struts-tiles-1.3.10.jar

file xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc" xmlns="http://xmlns.jcp.org/xml/ns/javae" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javae http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xs" id="WebApp_ID" version="3.1">
<display-name>Corso2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>html/ciao.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>com.azienda.esempiCorso.sessione15.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.azienda.esempiCorso.sessione15.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>


login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Login</title>
</head>
<body>
<div align="center" style="padding-top: 150px;">
<form action="/Corso2/login" method="post">
<table border="0" width="300px" height="100px" cellspacing="5" style="background-color:silver">
<tr>
<td align ="right">
Username
</td>
<td align="left">
<input type="text" name="username">
</td>
</tr>

<tr>
<td align="right">
Password
</td>
<td align="left">
<input type="text" name="password">
</td>
</tr>

<tr>
<td align="center" colspan="2">
<input type="submit" value="Login">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>


servlet testServlet

package com.azienda.esempiCorso.sessione15;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.azienda.progettoCorso.dao.DaoHibernate;
import com.azienda.progettoCorso.dao.DaoInterface;
import com.azienda.progettoCorso.model.Utente;

public class LoginServlet extends HttpServlet
{

private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
doPost(request,response);
}

@Override
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
{
String userName = request.getParameter("userName");
String password = request.getParameter("password");
if ( userName != null && !userName.isEmpty() && password != null && !password.isEmpty() )
{
Utente utente = new Utente();
utente.setUserName(userName);
utente.setPassword(password);
DaoInterface dao = new DaoHibernate();
try
{
Utente utenteFromDb = dao.retrieveById(utente.getId(),true);
if ( utenteFromDb != null && utenteFromDb.getPassword().equals(password) )
{
request.getSession().setAttribute("userLogged","YES");
String requestUrl = (String) request.getSession().getAttribute("requestUrl");
if ( requestUrl != null && !requestUrl.isEmpty() )
{
request.getSession().removeAttribute("requestUrl");
request.getRequestDispatcher(requestUrl).forward(request,response);
}
else
{
request.getRequestDispatcher("/html/loginOk.html").forward(request,response);
}
}
else
{
request.getRequestDispatcher("/html/loginError.html").forward(request,response);
}
}
catch ( Exception ex )
{
ex.printStackTrace();
request.getRequestDispatcher("/html/loginError.html").forward(request,response);
}
finally
{
((DaoHibernate) dao).getSession().getSessionFactory().close();
}
}
else
{
request.getRequestDispatcher("/html/login.html").forward(request,response);
}
}
}


CLASSE UTENTE E UTENTE ID CON I RELATIVI HASCHCODE INUTILE CHE VE LA POSTO

package com.azienda.progettoCorso.model;

import java.io.Serializable;

public class Utente implements Serializable{

private static final long serialVersionUID = 1L;

private UtenteId id = null;
private String password = null;
private String profilo = null;

public UtenteId getId() {
return id;
}
public void setId(UtenteId id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public String getUserName()
{
if ( id != null )
{
return id.getUserName();
}
return null;
}

public void setUserName(String userName)
{
if ( id == null )
{
id = new UtenteId();
}
id.setUserName(userName);
}

public String getProfilo() {
return profilo;
}
public void setProfilo(String profilo) {
this.profilo = profilo;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Utente other = (Utente) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}

}


CLASSE DAO PER LA RICERCA IN DB DI DUE UTENTI INSERITI IN POSTGRSQL ADMIN E USER 1
@Override
public List<Utente> retrieve(Utente utente,boolean openTransaction) {
List<Utente> result = new ArrayList<Utente>();
if ( openTransaction )
{
Transaction transaction = null;
try
{
transaction = session.beginTransaction();
result = retrieveInTransaction(utente);
transaction.commit();
}
catch( Exception ex )
{
ex.printStackTrace();
transaction.rollback();
}
}
else
{
result = retrieveInTransaction(utente);
}
return result;
}

public List<Utente> retrieveInTransaction(Utente utente)
{
List<Utente> result = new ArrayList<Utente>();
Criteria criteria = session.createCriteria(Utente.class);
if ( utente.getUserName() != null )
{
criteria.add(Restrictions.ilike("id.userName",utente.getUserName(),MatchMode.ANYWHERE));
}
if ( utente.getProfilo() != null )
{
criteria.add(Restrictions.ilike("profilo",utente.getProfilo(),MatchMode.ANYWHERE));
}
criteria.addOrder(Order.asc("id.userName"));
result = criteria.list();
return result;
}

@Override
public Utente retrieveById(UtenteId utenteId,boolean openTransaction) {
Utente result = null;
Transaction transaction = null;
if ( openTransaction )
{
try
{
transaction = session.beginTransaction();
result = retrieveByIdInTransaction(utenteId);
transaction.commit();
}
catch( Exception ex)
{
ex.printStackTrace();
transaction.rollback();
}
}
else
{
result = retrieveByIdInTransaction(utenteId);
}
return result;
}

public Utente retrieveByIdInTransaction(UtenteId utenteId) {
Utente result = null;
if ( utenteId != null )
{
Criteria criteria = session.createCriteria(Utente.class);
criteria.add(Restrictions.eq("id",utenteId));
List<Utente> list = criteria.list();
if ( ! (list != null && list.size() == 1 ) )
{
throw new RuntimeException("Non e' stato travato uno ed un solo utente con id " + utenteId.getUserName());
}
result = list.get(0);
}
return result;
}

3 Risposte

  • Re: Problema con hibernate/struts/servlet postgresql

    Le pagine statiche html funzionano funziona tutto tranne il form login con loginservlet, in pratica tutto inizialemnte funzionava addiritura riusci ad inserire un filtro con la classe login filter ma installai struts e i relativi jar e qualcosa e' andato in conflitto allora ho cancellato tutti e due i progetti rifatti a mano una cartella e file alla volta ricaricati tutti i jar, pulito il server con clean ma nulla e' servito. ho bisogno di superare questo ostacolo urgentemente voglio escludere la reinstallazione di eclipse e tomcat. anche perché ho pulito anche le cartelle documenti/projectJava di eclipse e la cartella di Tomcat ove cerano residui di progetti vecchi infatti ho chiamato il progetto attuale Corso2 e non Corso come il precedente onde evitare ricalcolamento di file vecchi. cmq e' un problema secondo me di jar che non fanno query su db.
  • Re: Problema con hibernate/struts/servlet postgresql

    Nella classe utente ho notato che mi esce un Type safety puo' essere questo il problema? mi esce un triangolino giallo sul criteria.list()
  • Re: Problema con hibernate/struts/servlet postgresql

    In pratica mi esce un warming
Devi accedere o registrarti per scrivere nel forum
3 risposte