Java, BlazeDS, Flex - Error # 10566: Немагчыма стварыць ўласцівасць smallMessage на AcknowledgeMessage?

У мяне ёсць працоўнае прыкладанне 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
  • Вясна-Flex 1.5.0.RELEASE
1
У дадатак да першапачатковага пытанні вышэй.
дададзена аўтар HDave, крыніца
Якія версіі Flex і BlazeDS вы карыстаецеся?
дададзена аўтар warhammerkid, крыніца

2 адказы

Мы маем сапраўды такую ​​ж праблему ў нашым дадатку. Я здолеў схаваць памылку, выкарыстоўваючы наступны пачварны хак.

Па-першае, стварыць клас, як так:

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;
    }   
}

А затым, у вашым кодзе запуску, заменіце AcknowledgeMessage з вашым Ухіленая:

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

Мы таксама зрабіць тое ж хак для класаў ErrorMessage і AsyncMessage, якія, здаецца, пакутуюць ад тых жа праблем. Я паняцця не маю, калі гэты хак можа мець некаторыя негатыўныя пабочныя эфекты, і я хацеў бы знайсці больш правільнае выпраўленне для яго.

2
дададзена
Што гэта smallMessage так ці інакш?
дададзена аўтар HDave, крыніца
Калі яго можна стварыць цалкам працуючы дадатак прайгравання праблемы я буду глядзець на яго, гэта можа быць рэальная памылка. мой Yahoo рахунак электроннай пошты cornelcreanga.
дададзена аўтар Cornel Creanga, крыніца
Пры адпраўцы аб'екта ў АІФ, усе ўласцівасці класа павінны быць пералічаныя як радкі, так што десериализатор ведае, як десериализации яго. BlazeDS мае некаторыя AcknowledgeMessage, які адпавядае IExternalizable, хоць і заўсёды пасылаючы ўласцівасць у тым жа парадку, так што ён можа прапусціць адпраўку імёнаў уласцівасцяў. Сетэр smallMessage з'яўляецца часткай пераўтварэння паміж стандартнай AcknowledgeMessage і сціснутай адзін, хоць, чаму вы атрымліваеце выключэння, па-за мяне.
дададзена аўтар warhammerkid, крыніца
Вельмі добрае пытанне. Рэалізацыя Java з AcknowledgeMessage мае яго як ўласцівасць, рэалізацыя as3 ня робіць. Я мяркую, што BlazeDS гэта адзін вінаваты тут ...
дададзена аўтар finalman, крыніца

не выкарыстоўваць такое ж імя ў якасці першаснага ключа, што вы выкарыстоўвалі ў імя табліцы ... Выкарыстоўвайце іншае імя .....  напрыклад......

VO аб'ект ...

public class ColumnNameVO
{    
    public var ifId:int;
    public var formatId:int;
    public var position:int;
    public var name:String;  
    public function ColumnNameVO() { }
}

Табліца POJO classs:

public class ColumnNameVO
{
    public var Id:int;
    public var formatId:int;
    public var position:int;
    public var name:String;  

}
1
дададзена