Mauricio_Linhares 9 de jun. de 2005
Pra ver como você pode definir um ExceptionHandler no Struts, dê uma olhada aqui:
http://struts.apache.org/userGuide/building_controller.html#exception_handler
E sobre o código, ele provavelmente está lançando uma exceção, mas ela está sendo “silenciada” nos seus blocos try-catch, porque eles não lançam ela “pra cima”, quando ela acontece.
Tente colocar um:
Antes de fechar cada bloco “catch” e veja o que acontece.
Vai ficar algo assim:
catch ( HibernateException e ) {
e . printStackTrace ();
errors . add (
ActionErrors . GLOBAL_ERROR ,
new ActionError ( "erro.exception" , e . getCause (). getMessage ()));
throw e ;
}
Tulio_da_Silva_Galva 9 de jun. de 2005
Eu tenho o seguinte código de exclusão… e nesse código eu estou tentando escluir um cadastro de fornecedor que pode possuir várias listas em seus registros… porém no momento em que tento excluir o forneBanco ele trava… alguém poderia ver o q está acontecendo?
public class FornecedorExcluirAction extends Action {
public ActionForward execute (
ActionMapping mapping ,
ActionForm form ,
HttpServletRequest request ,
HttpServletResponse response )
throws Exception {
ActionErrors errors = new ActionErrors ();
ActionForward forward = new ActionForward ();
DynaValidatorForm excluirLista = ( DynaValidatorForm ) form ;
// DynaValidatorForm excluirListaRepres = (DynaValidatorForm) form;
try {
FornecedorDAO fornecedorDAO = new FornecedorDAO ();
FornecedorDoctoDAO fornecedorDocDAO = new FornecedorDoctoDAO ();
FornecedorDiretorDAO forneDirDAO = new FornecedorDiretorDAO ();
FornecedorRepresentantesDAO forneRepresDAO = new FornecedorRepresentantesDAO ();
FornecedorBancoDAO forneBancoDAO = new FornecedorBancoDAO ();
FornecedorSuspensaoDAO forneSuspensaoDAO = new FornecedorSuspensaoDAO ();
FornecedorDocto fornecedorDoc = new FornecedorDocto ();
//excluirLista.get("codigForne");
String [] idArray = ( String [] ) excluirLista . get ( "codigForne" );
List listFornecedor = new ArrayList ();
List listForneDir = new ArrayList ();
List listForneRepres = new ArrayList ();
List listForneBanco = new ArrayList ();
List listForneSuspensao = new ArrayList ();
String codigForne = "" ;
for ( int i = 0 ; i < idArray . length ; i ++ ) {
codigForne = idArray [ i ] ;
listFornecedor = fornecedorDAO . getListForn ( codigForne );
listForneDir = forneDirDAO . getByDiretor ( codigForne );
listForneRepres = forneRepresDAO . getListRepresentantes ( codigForne );
listForneBanco = forneBancoDAO . getListBanco ( codigForne );
listForneSuspensao = forneSuspensaoDAO . getBySusp ( codigForne );
Iterator it = listForneDir . iterator ();
Iterator it1 = listForneRepres . iterator ();
Iterator it2 = listForneRepres . iterator ();
Iterator it3 = listForneBanco . iterator ();
FornecedorDiretor forneDir = new FornecedorDiretor ();
FornecedorRepresentantes forneRepres = new FornecedorRepresentantes ();
FornecedorBanco forneBanco = new FornecedorBanco ();
FornecedorSuspensao forneSuspensao = new FornecedorSuspensao ();
Fornecedor fornecedor = new Fornecedor ();
while ( it . hasNext ()) {
forneDir = ( FornecedorDiretor ) it . next ();
forneDirDAO . delete ( forneDir );
}
while ( it1 . hasNext ()) {
forneDir = ( FornecedorDiretor ) it1 . next ();
forneDirDAO . delete ( forneDir );
}
while ( it2 . hasNext ()) {
forneBanco = ( FornecedorBanco ) it2 . next ();
forneBancoDAO . delete ( forneBanco );
}
while ( it3 . hasNext ()) {
forneSuspensao = ( FornecedorSuspensao ) it3 . next ();
forneSuspensaoDAO . delete ( forneSuspensao );
}
fornecedor = ( Fornecedor ) fornecedorDAO . getListForn ( codigForne );
fornecedorDAO . delete ( fornecedor );
}
List list = fornecedorDAO . getList ();
if ( list . isEmpty ()) {
request . getSession (). removeAttribute ( "fornecedor" );
}
} catch ( HibernateException e ) {
e . printStackTrace ();
errors . add (
ActionErrors . GLOBAL_ERROR ,
new ActionError ( "erro.exception" , e . getCause (). getMessage ()));
} catch ( Exception e ) {
e . printStackTrace ();
errors . add (
ActionErrors . GLOBAL_ERROR ,
new ActionError ( "erro.exception" , e . getMessage ()));
}
if ( ! errors . isEmpty ()) {
saveErrors ( request , errors );
forward = mapping . getInputForward ();
} else {
forward = mapping . findForward ( "sucesso" );
}
return ( forward );
}
}
valeu!!!
Tulio_da_Silva_Galva 9 de jun. de 2005
é q sou iniciante no Java com Hibernate… e por isso naum tenho idéias para solucionar problemas que podem ser simples…
não sei como utilizar esse … será q vc teria algum exemplo dele?
e esse meu cádigo não está gerando excessões ele apenas trava a aplicação…