当前位置:  开发笔记 > 编程语言 > 正文

如何在Flex应用程序中处理自定义Java异常

如何解决《如何在Flex应用程序中处理自定义Java异常》经验,为你挑选了1个好方法。

我们使用BlazeDS作为Flex和Java之间的代理.方法与(http://www.flexpasta.com/index.php/2008/05/16/exception-handling-with-blazeds-and-flex/)中的方法相同

Java异常声明:

public class FlexException extends RuntimeException {
 private String name = 'John';

 public FlexException(String message) {
   super(message);
 }

 public String getName() {
   return name;
 }
}

然后,我们扔掉它:

public void testMethod(String str) throws Exception {
 throw new FlexException("Custom exception");
}

Flex部分:

private function faultHandler(event:FaultEvent):void
{
  var errorMessage:ErrorMessage = event.message as ErrorMessage;
  trace("error++");
}

和远程对象在这里实例化:


但在event.fault我得到"Server.Processing"并event.faultString等于"服务器上有未处理的故障.自定义异常"如何在异常道具中指定数据?

更新:配置文件:messaging-config.xml



    
    



    

代理-config.xml中




    
        
            100
            2
        
        true
    

    
        
        
    

    
        
    

    
    


远程-config.xml中



    



    

services-config.xml中



    
    
            



    
    

    




    
        
    

    
        
        
            false
        
    

    
        
        
            true
            4
        
    

    



    
        
            [BlazeDS] 
            true
            true
            true
            true
        
        
            Endpoint.*
            Service.*
            Configuration
        
    



    
        false
        
    

Spring配置:


    
    

这是Tomcat的日志

    [BlazeDS]03/23/2010 14:46:51.870 [DEBUG] [Endpoint.AMF] Serializing AMF/HTTP res
ponse
Version: 3
  (Message #0 targetURI=/1/onStatus, responseUR|-)
    (Typed Object #0 'flex.messaging.messages.ErrorMessage')
      headers = (Object #1)
      rootCause = null
      body = null
      correlationId = "2EB1C972-B32B-03BA-825C-8AD8B9DFCEF8"
      faultDetail = null
      faultString = "There was an unhandled failure on the server. Custom except
ion"
      clientId = "89FB2149-6E0F-4FB6-4D5E-EC838139EE90"
      timeToLive = 0.0
      destination = "mySample"
      timestamp = 1.269344811854E12
      extendedData = null
      faultCode = "Server.Processing"
      messageId = "89FB2149-6E1A-4453-6E45-55A93BBA50AF"

以下是我在onFaultHandler中设置断点时在Flex中获得的内容: alt文本http://my.picresize.com/vault/RS9I8P87PH.jpg 因此,问题是rootClause为空的原因?我的FlexException在哪里,名字='John'.



1> Cornel Crean..:

好的,所以你正在使用spring-blazeds-flex集成.在这种情况下,前面链接中描述的机制不能正常工作.您需要创建自己的异常转换器,否则您将收到通用的Server.Processing错误:.请阅读:http://static.springsource.org/spring-flex/docs/1.0.x/reference/html/ch02s08.html

你也可以在我的朋友Ionut的博客上阅读这篇文章:http://margelatu.org/2009/06/15/meaningful-exceptions-in-lcdsblazeds-applications-using-spring-blazeds-integration/

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有