在GraniteDS服务中调度故障事件的最简单方法是什么

时间:2014-11-21 14:24:43

标签: java flex exception graniteds

我正在尝试在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)?

1 个答案:

答案 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。