Boa tarde galera estou com um problema, tenho uma aplicacao hibernate + struts2 + jquery + firebird, quase tudo funciona :), sou novato em java e estou tentando fazer minha primeira aplicacao funcional, pois ate agora era so exemplos e teste…:).
Criei em meu banco de dados algumas exceptions(firebird), para garantir algumas regras de meu negocio. quando tento fazer algo na aplicação (pagina) e o exception da base he lançada simplesmemte o tomcat tem que ser reniciado para liberar novamente a aplicação. Gostaria de enviar a mensagem do exception para a pagina mais nao estou conseguindo.
minha action
package bc.com.wizardslz.calendario.action;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.hibernate.classic.Session;
import org.hibernate.ejb.criteria.expression.function.LengthFunction;
import br.com.wizardslz.dao.CalendarioDAO;
import br.com.wizardslz.modelo.Calendario;
import br.com.wizardslz.util.HibernateUtil;
@ParentPackage(value = "json-default")
public class CalendarioAdicionarAction {
private Calendario calendario;
private String hora;
@Action(value="/adicionaCaledario", results= {
@Result(name="sucesso", type="httpheader", params={"status", "200"}),
@Result(name = "erro", type = "json")
})
public String execute() throws ParseException
{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
CalendarioDAO dao = new CalendarioDAO(session);
session.beginTransaction();
String horaSring = getHora();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Calendar hora = Calendar.getInstance();
hora.setTime(sdf.parse(horaSring));
calendario.setHora(hora);
try {
dao.adiciona(calendario);
} catch (Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
return "erro";
}
session.getTransaction().commit();
return "sucesso";
}
public Calendario getCalendario() {
return calendario;
}
public void setCalendario(Calendario calendario) {
this.calendario = calendario;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
}
meu metodo no dao
public void adiciona(Calendario calendario) {
try {
this.session.saveOrUpdate(calendario);
} catch (Exception e) {
this.session.getTransaction().rollback();
e.printStackTrace();
}
}
Um detalhe ele funciona normal qdo o banco nao lanca o exception
Muito Grato Claudiano