Boa tarde a todos.
Tenho uma aplicação utilizando EJB 2.1. O problema consiste no seguinte. Possuo uma classe e exceção chamada ExcecaoDeNegocio. Esta classe extende java.lang.Exception.
Quando um Session Bean gera esta exceção (através de throws new ExcecaoDeNegocio), a exceção que é propagada ao cliente do EJB, não é esta, e sim uma UnexpectedException.
Ou seja, eu gero uma exceção de um tipo no EJB, porém a exceção que é repassada ao cliente, é uma UnexpectedException.
O método do EJB que lança esta exceção, já está prevendo ela na declaração do método.
Método no EJB que lança a exceção:
public void salvar(Object obj) throws RemoteException, ExcecaoDeNegocio {
(...)
/** Neste ponto lanço a exceção **/
throws new ExcecaoDeNegocio(msgErro);
}
No cliente deste EJB, temos :
public void salvar(Object obj) {
(...)
/** Captura a exceção **/
try {
ejbRef.salva(obj);
} catch (Exception e) {
/** Neste ponto, se eu verificar a exceção, o e = UnexpectException
porém deveria chegar aqui, uma ExcecaoDeNegocio, pois é ela
que está sendo gerada no EJB **/
}
}
Gostaria de saber se alguém sabe o motivo deste problema, e como pode ser contornado.
Estou utilizando servidor de aplicações WebSphere 6.1
Abraço.