我正在尝试在GraniteDS服务中调度故障事件
方法调用(Flex):
userService.addUser(user, null, function addUserFault(e:TideFaultEvent):void {
Alert.show(e.fault.faultString);
});
服务器方法(Spring):
@Override
public User addUser(User user) throws Exception{
if(findUserByName(user.getUsername()) != null)
throw new Exception("Username Already Exist");
entityManager.persist(user);
return user;
}
但我得到的是客户端的静默和服务器控制台中的java.lang.NoSuchMethodException
如何使用default graniteds exception converter将故障事件传递给客户端(Flex)?
答案 0 :(得分:0)
解决。我不知道它是否是一个bug,但你不能将结果函数设置为null并仅指定故障函数 - 这不会起作用。我的通话方法应该如下:
userService.addUser(user, function addUserResult(e:TideResultEvent){
// do nothing
}, function addUserFault(e:TideFaultEvent):void {
Alert.show(e.fault.faultString);
});
在这种情况下,远程方法中的java Exception将作为TideFaultEvent发送回flex。