我正在使用 Flex + Blazeds + Spring Security。我的 ExceptionTranslator 发生了一些奇怪的事情。
public class ProjectExceptionTranslator implements ExceptionTranslator {
@Override
public boolean handles(Class<?> arg0) {
return true;
}
@Override
public MessageException translate(Throwable throwable) {
MessageException exception = new MessageException();
if (throwable instanceof BadCredentialsException) {
exception.setCode("08");
exception.setMessage("Login error.");
}
if (throwable instanceof HibernateException) {
exception.setCode("16");
exception.setMessage("Data base error.");
}
return exception;
}
}
spring 抛出的所有消息,例如:BadCredentialsException,都返回到 flex。但是,如果我的服务抛出一些 ex:HibernateException,它不会返回到 flex。
这是我的配置:
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<flex:message-broker>
<flex:exception-translator ref="projectExceptionTranslator" />
<flex:secured />
</flex:message-broker>
我错过了什么吗?谢谢。