0

我正在尝试在 GraniteDS 服务中调度故障事件

方法调用(Flex):

userService.addUser(user, null, function addUserFault(e:TideFaultEvent):void {
                Alert.show(e.fault.faultString); 
            });

服务器方法(弹簧):

@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服务器控制台的沉默。
我如何使用默认的 graniteds 异常转换器将故障事件传递给客户端(Flex)?

4

1 回答 1

0

解决了。我不知道这是否是错误,但您不能将结果函数设置为 null 并仅指定故障函数 - 这不起作用。我的调用方法应如下所示:

userService.addUser(user, function addUserResult(e:TideResultEvent){
                // do nothing
            }, function addUserFault(e:TideFaultEvent):void {
                Alert.show(e.fault.faultString); 
            });

在这种情况下,远程方法中的 java 异常将作为 TideFaultEvent 发送回 flex。

于 2014-11-22T17:05:12.877 回答