Java、BlazeDS、Flex-错误#10566:无法在AcknowledgeMessage上创建属性smallMessage?

Java、BlazeDS、Flex-错误#10566:无法在AcknowledgeMessage上创建属性smallMessage?,java,actionscript-3,apache-flex,blazeds,amf,Java,Actionscript 3,Apache Flex,Blazeds,Amf,我有一个正常工作的Flex/Java应用程序,但如果我注销channelSet并重新登录,在调试控制台中,我会看到许多此错误的实例: ReferenceError: Error #1056: Cannot create property smallMessage on mx.messaging.messages.AcknowledgeMessage. 错误本身似乎不会干扰应用程序 AcknowledgeMessage类不是我的类——我不知道为什么Java端和Flex端在其内部类的属性方面不匹配

我有一个正常工作的Flex/Java应用程序,但如果我注销channelSet并重新登录,在调试控制台中,我会看到许多此错误的实例:

ReferenceError: Error #1056: Cannot create property smallMessage on mx.messaging.messages.AcknowledgeMessage.
错误本身似乎不会干扰应用程序

AcknowledgeMessage
类不是我的类——我不知道为什么Java端和Flex端在其内部类的属性方面不匹配

感谢您的帮助

版本:

  • Flex 4.1.0.16076
  • BlazeDS 4.0.0.14931
  • 弹性弹簧1.5.0.1释放

    • 我们在应用程序中遇到了完全相同的问题。我已经设法用下面的难看的黑客来隐藏错误

      首先,创建这样一个类:

      public class FixedAcknowledgeMessage extends AcknowledgeMessage {
          private var _smallMessage : *;
      
          public function FixedAcknowledgeMessage() { }
      
          public function get smallMessage() : * {
              return _smallMessage;
          }
      
          public function set smallMessage(value : *) : void {
              _smallMessage = value;
          }   
      }
      
      然后,在启动代码中,将确认消息替换为固定消息:

      registerClassAlias("flex.messaging.messages.AcknowledgeMessage", FixedAcknowledgeMessage);
      

      我们还对类ErrorMessage和AsyncMessage进行了同样的攻击,它们似乎遇到了同样的问题。我不知道这个黑客是否会有一些负面的副作用,我很想找到一个更合适的修复方法。

      不要使用与表名中使用的主键相同的名称。。。 使用不同的名称。。。。。 例如

      VO对象

      public class ColumnNameVO
      {    
          public var ifId:int;
          public var formatId:int;
          public var position:int;
          public var name:String;  
          public function ColumnNameVO() { }
      }
      
      表pojo类别:
      您使用的是什么版本的Flex和BlazeDS?添加到上面的原始问题中。这个小消息是什么?非常好的问题。AcknowledgeMessage的java实现将其作为属性,而as3实现没有。我猜BlazeDS是罪魁祸首…当您在AMF中发送对象时,类的所有属性都必须作为字符串列出,以便反序列化程序知道如何反序列化它。BlazeDS有一些符合IExternalizable的确认消息,并且总是以相同的顺序发送属性,因此它可以跳过发送属性名称。smallMessage setter是标准确认消息和压缩消息之间转换的一部分,尽管我无法理解为什么会出现异常。如果有可能创建一个完全工作的应用程序来重现问题,我将对此进行研究,这可能是一个真正的错误。我的雅虎电子邮件帐户是cornelcreanga。
      public class ColumnNameVO
      {
          public var Id:int;
          public var formatId:int;
          public var position:int;
          public var name:String;  
      
      }