*[RESOLVIDO]*

Primeiramente queria agradecer quem dispos a me ajudar... consegui
galeraaaaa contornar o erro! rsrsrs. Segundo tentar expor aqui o problema,
na linguagem que todos podem entender, me parece que n tem nda de complicado
é so uma questao de compreender o que ta "rolando" por traz. Como solucionei
o problema?

começando do inicio! hehehe... ou seja, modo "debug". Esse salva qualquer
hum!! =p  para ativar, vá ate o arquivo de configuracao services-config.xml
do flex e onde tem a linha:

*<target class="flex.messaging.log.ConsoleTarget" level="Error">* muda para
*<target class="flex.messaging.log.ConsoleTarget" level="Debug">*

Depois entender o que se passa entre o Flex (AS3) -> BlazeDS -> Java...
descobri entao que:

quando eu chamava a classe do servico do java (trazendo dados do banco), ele
me retornava o seguinte conteudo no meu console:

[BlazeDS]Serializing AMF/HTTP response
Version: 3
  (Message #0 targetURI=/3/onResult, responseURI=)
    (Externalizable Object #0 'DSK')
      (Externalizable Object #1 'flex.messaging.io.ArrayCollection')
        (Array #2)
          [0] = (Typed Object #3
'br.org.oabgo.satiflex.entity.TbDsTiposUnidadesAdministrativas')
            id = 5.0
            tbCdUnidadesAdministrativases = (Externalizable Object #4
'flex.messaging.io.ArrayCollection')
              (Array #5)
            vchDescricao = "Autarquia"
            intCodigo = 5
          [1] = (Typed Object #6
'br.org.oabgo.satiflex.entity.TbDsTiposUnidadesAdministrativas')
            id = 13.0
            tbCdUnidadesAdministrativases = (Externalizable Object #7
'flex.messaging.io.ArrayCollection')
              (Array #8)
            vchDescricao = "Comissão"
            intCodigo = 13

entao percebi que a linha:

tbCdUnidadesAdministrativases = (Externalizable Object #4
'flex.messaging.io.ArrayCollection')

estava me retornando um tipo diferente do que havia declaro no AS3 ou seja,
o tbCdUnidadesAdministrativases ta declarado como do tipo *
TbCdUnidadesAdministrativas*, eu estava recebendo uma arraycollection. a
declaracao esta certa porem, a "traduçao" do tipo estava errado, motivo do
qual estava me retornando o erro:

TypeError: Error #1034: Type Coercion failed: cannot convert
mx.collections::arraycollect...@7dc2f81 to
br.org.satiflex.entity.TbCdUnidadesAdministrativas.

Entao fui eu atraz do tal *Externalizable Object #7
'flex.messaging.io.ArrayCollection'* e descobri a falha, q na verdade n eh
falha! rsrsrs... pra quem quiser pode ler aqui mais sobre Externalizable de
objetos:

http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/lcds/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=serialize_data_4.html

ou

http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/lcds_26_devguide.pdf
-> pagina 76 em diante.


Quem tiver duvidas, só me perguntar... seguindo esses dois link ae acima vcs
terao sucesso!

boa sorte!

abrasssSss...






2009/9/23 Marcelo Caser <marceloca...@gmail.com>

> fiz diferente chamando o que vc me passou dentro de um resultset qualquer,
> e agora me foi retornado...
>
> TypeError: Error #1034: Type Coercion failed: cannot convert
> mx.collections::arraycollect...@7126241 to
> br.org.oabgo.controletiflex.model.TbCdUnidadesAdministrativas.
>
> 2009/9/23 Marcelo Caser <marceloca...@gmail.com>
>
> como estou recebendo um faultevent, eh me retornado o seguinte erro...
>>
>> Erro: Server.Processing - null - java.lang.NullPointerException : null
>>
>> sei que o erro eh pq estou passando campos nulos.. a questao eh q AS3 está
>> "alimentado" porem quando vai para o java, ele está indo como null
>>
>> 2009/9/23 Mário Júnior <juninho...@gmail.com>
>>
>> marcelo ... faça um simples teste:
>>>
>>> na mesma classe (seja ela AS3 ou mxml) que vc recebe o resultEvent,
>>> declare no corpo dela uma variavel "a toa" com esse tipo, por exemplo:
>>>
>>>
>>> private var _dummy : TbCdUnidadesAdministrativas
>>>
>>>
>>> private function handleResult(e:ResultEvent) : void {
>>>    Alert.show ("blablabla");
>>> }
>>>
>>>
>>> Entendeu? declare uma variavel "boba" desse tipo na mesma classe que
>>> possui o seu resultEvent. Coloque um breakpoint nesse "alert" e veja o
>>> conteudo do "e.result" ... verifique se agora o seu objeto foi serializado
>>> corretamente. (com o tipo *TbCdUnidadesAdministrativas* certo).
>>>
>>> Faça esse teste... dai dependendo da resposta teremos a explicacao (q
>>> será bem cumprida.. se eu tiver tempo :)  )
>>>
>>>
>>> abraços.
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2009/9/22 Marcelo Caser <marceloca...@gmail.com>
>>>
>>>> kkkkkkk... nao véi to irritado n kra... maneira de falar... tem hora q
>>>> da voltade é de apagar td e começar novamente... pode ter certeza que vc 
>>>> tah
>>>> ajundo brother... n so a mim a outras pessoas tb... ;)
>>>>
>>>> desculpa ae... pela maneira como respondi!! =)
>>>>
>>>> mas voltando ao que vc disse...
>>>>
>>>> entendi o que vc disse, porem... no JAVA eu tenho
>>>>
>>>> public class TbCdUnidadesAdministrativas  implements
>>>> java.io.Serializable {
>>>>
>>>>
>>>>     // Fields
>>>>
>>>>      private Long id;
>>>>      private TbDsTiposUnidadesAdministrativas
>>>> tbDsTiposUnidadesAdministrativas;
>>>>      *private TbCdUnidadesAdministrativas tbCdUnidadesAdministrativas;
>>>>
>>>> *a pergunta é: para esse atributo do JAVA marcado acima, no AS3
>>>> ficaria:
>>>>
>>>>
>>>> *public var tbCdUnidadesAdministrativas            :
>>>> TbCdUnidadesAdministrativas;**
>>>>
>>>> *ou nao é assim?*
>>>> *
>>>>
>>>>
>>>> 2009/9/22 Clayton <marquesclayt...@gmail.com>
>>>>
>>>>> Marcelo me desculpe se disse, ainda não sei oq foi, alguma coisa que te
>>>>> deixou irritado. Meu intuito aqui é só de ajudar.
>>>>>
>>>>> Prestando um pouco mais de atenção no código que você postou notei o
>>>>> seguinte:
>>>>>
>>>>> O Remote Class :
>>>>> [RemoteClass(alias="br.satiflex.entity.TbCdUnidadesAdministrativas")]
>>>>> A classe : public class TbCdUnidadesAdministrativas
>>>>>
>>>>> Um dos atributos : public var tbCdUnidadesAdministrativas            :
>>>>> TbCdUnidadesAdministrativas;
>>>>>
>>>>> Você está criando uma classe de um tipo, apontando o Remote Class
>>>>> correto, mas um dos atributos é a própria classe, se isso é proposital é
>>>>> algo que não conheço.
>>>>>
>>>>>
>>>>> 2009/9/22 Marcelo Caser <marceloca...@gmail.com>
>>>>>
>>>>>> @clayton
>>>>>> diacho já olhei td quanto eh coisa...
>>>>>>
>>>>>> só acho estranho que quando mudo para o tipo Object, como disse lah em
>>>>>> cima a coisa "funcionado" o erro desaparece!
>>>>>>
>>>>>> 2009/9/22 Clayton <marquesclayt...@gmail.com>
>>>>>>
>>>>>>> Vou dizer uma coisa. Isso aconteceu comigo tb e apesar de verificar o
>>>>>>> RemoteClass só consegui resolver isso prestando muita atenção nele, pois
>>>>>>> apesar do nome da entidade estar correta o package referenciado estava
>>>>>>> faltando uma letra. Vale a pena conferir com muito cuidado todo o 
>>>>>>> endereço
>>>>>>> no RemoteClass.
>>>>>>>
>>>>>>> 2009/9/22 Marcelo Caser <marceloca...@gmail.com>
>>>>>>>
>>>>>>>> é do tipo serializable olhei o [RemoteClass] e as classes no java
>>>>>>>> como mostra abaixo:
>>>>>>>>
>>>>>>>>
>>>>>>>> no AS3
>>>>>>>>
>>>>>>>> package br.satiflex.model
>>>>>>>> {
>>>>>>>>     import mx.collections.ArrayCollection;
>>>>>>>>
>>>>>>>>
>>>>>>>> [RemoteClass(alias="br.satiflex.entity.TbCdUnidadesAdministrativas")]
>>>>>>>>     [Bindable]
>>>>>>>>     public class TbCdUnidadesAdministrativas
>>>>>>>>     {
>>>>>>>>
>>>>>>>>         public var id                                    : Number
>>>>>>>>         public var tbDsTiposUnidadesAdministrativas        :
>>>>>>>> TbDsTiposUnidadesAdministrativas;
>>>>>>>>         public var tbCdUnidadesAdministrativas            :
>>>>>>>> TbCdUnidadesAdministrativas;
>>>>>>>>         public var vchSigla                                : String
>>>>>>>>         public var vchNome                                : String
>>>>>>>>         public var tbCdUnidadesAdministrativases        :
>>>>>>>> ArrayCollection;
>>>>>>>>         public var tbCdAutenticacoesAdsls                :
>>>>>>>> ArrayCollection;
>>>>>>>>         public var tbCdItensCiasTelefonicases            :
>>>>>>>> ArrayCollection;
>>>>>>>>
>>>>>>>>
>>>>>>>>     }
>>>>>>>> }
>>>>>>>>
>>>>>>>> no JAVA
>>>>>>>>
>>>>>>>> public class TbCdUnidadesAdministrativas  implements
>>>>>>>> java.io.Serializable {
>>>>>>>>
>>>>>>>>
>>>>>>>>     // Fields
>>>>>>>>
>>>>>>>>      private Long id;
>>>>>>>>      private TbDsTiposUnidadesAdministrativas
>>>>>>>> tbDsTiposUnidadesAdministrativas;
>>>>>>>>      private TbCdUnidadesAdministrativas
>>>>>>>> tbCdUnidadesAdministrativas;
>>>>>>>>      private String vchSigla;
>>>>>>>>      private String vchNome;
>>>>>>>>      private Set<TbCdUnidadesAdministrativas>
>>>>>>>> tbCdUnidadesAdministrativases = new 
>>>>>>>> HashSet<TbCdUnidadesAdministrativas>(0);
>>>>>>>>      private Set<TbCdAutenticacoesAdsl> tbCdAutenticacoesAdsls = new
>>>>>>>> HashSet<TbCdAutenticacoesAdsl>(0);
>>>>>>>>      private Set<TbCdItensCiasTelefonicas>
>>>>>>>> tbCdItensCiasTelefonicases = new HashSet<TbCdItensCiasTelefonicas>(0);
>>>>>>>>
>>>>>>>>     // Property accessors
>>>>>>>>     @Id
>>>>>>>>
>>>>>>>>     @Column(name="Id", unique=true, nullable=false, precision=18,
>>>>>>>> scale=0)
>>>>>>>>
>>>>>>>>     public Long getId() {
>>>>>>>>         return this.id;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void setId(Long id) {
>>>>>>>>         this.id = id;
>>>>>>>>     }
>>>>>>>>     @ManyToOne(fetch=FetchType.LAZY)
>>>>>>>>         @JoinColumn(name="IdTipoUnidadeAdministrativa",
>>>>>>>> nullable=false)
>>>>>>>>
>>>>>>>>     public TbDsTiposUnidadesAdministrativas
>>>>>>>> getTbDsTiposUnidadesAdministrativas() {
>>>>>>>>         return this.tbDsTiposUnidadesAdministrativas;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void
>>>>>>>> setTbDsTiposUnidadesAdministrativas(TbDsTiposUnidadesAdministrativas
>>>>>>>> tbDsTiposUnidadesAdministrativas) {
>>>>>>>>         this.tbDsTiposUnidadesAdministrativas =
>>>>>>>> tbDsTiposUnidadesAdministrativas;
>>>>>>>>     }
>>>>>>>>     @ManyToOne(fetch=FetchType.LAZY)
>>>>>>>>         @JoinColumn(name="IdUnidadeAdmSuperior")
>>>>>>>>
>>>>>>>>     public TbCdUnidadesAdministrativas
>>>>>>>> getTbCdUnidadesAdministrativas() {
>>>>>>>>         return this.tbCdUnidadesAdministrativas;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void
>>>>>>>> setTbCdUnidadesAdministrativas(TbCdUnidadesAdministrativas
>>>>>>>> tbCdUnidadesAdministrativas) {
>>>>>>>>         this.tbCdUnidadesAdministrativas =
>>>>>>>> tbCdUnidadesAdministrativas;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     @Column(name="vchSigla", unique=true, nullable=false, length=10)
>>>>>>>>
>>>>>>>>     public String getVchSigla() {
>>>>>>>>         return this.vchSigla;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void setVchSigla(String vchSigla) {
>>>>>>>>         this.vchSigla = vchSigla;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     @Column(name="vchNome", nullable=false, length=100)
>>>>>>>>
>>>>>>>>     public String getVchNome() {
>>>>>>>>         return this.vchNome;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void setVchNome(String vchNome) {
>>>>>>>>         this.vchNome = vchNome;
>>>>>>>>     }
>>>>>>>> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY,
>>>>>>>> mappedBy="tbCdUnidadesAdministrativas")
>>>>>>>>
>>>>>>>>     public Set<TbCdUnidadesAdministrativas>
>>>>>>>> getTbCdUnidadesAdministrativases() {
>>>>>>>>         return this.tbCdUnidadesAdministrativases;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void
>>>>>>>> setTbCdUnidadesAdministrativases(Set<TbCdUnidadesAdministrativas>
>>>>>>>> tbCdUnidadesAdministrativases) {
>>>>>>>>         this.tbCdUnidadesAdministrativases =
>>>>>>>> tbCdUnidadesAdministrativases;
>>>>>>>>     }
>>>>>>>> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY,
>>>>>>>> mappedBy="tbCdUnidadesAdministrativas")
>>>>>>>>
>>>>>>>>     public Set<TbCdAutenticacoesAdsl> getTbCdAutenticacoesAdsls() {
>>>>>>>>         return this.tbCdAutenticacoesAdsls;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void setTbCdAutenticacoesAdsls(Set<TbCdAutenticacoesAdsl>
>>>>>>>> tbCdAutenticacoesAdsls) {
>>>>>>>>         this.tbCdAutenticacoesAdsls = tbCdAutenticacoesAdsls;
>>>>>>>>     }
>>>>>>>> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY,
>>>>>>>> mappedBy="tbCdUnidadesAdministrativas")
>>>>>>>>
>>>>>>>>     public Set<TbCdItensCiasTelefonicas>
>>>>>>>> getTbCdItensCiasTelefonicases() {
>>>>>>>>         return this.tbCdItensCiasTelefonicases;
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     public void
>>>>>>>> setTbCdItensCiasTelefonicases(Set<TbCdItensCiasTelefonicas>
>>>>>>>> tbCdItensCiasTelefonicases) {
>>>>>>>>         this.tbCdItensCiasTelefonicases =
>>>>>>>> tbCdItensCiasTelefonicases;
>>>>>>>>     }
>>>>>>>>
>>>>>>>> Olhando não vi nenhum erro.. alguem pode me ajudar?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Clayton Marques Pereira
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Clayton Marques Pereira
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Mario Junior
>>> Enterprise Java / Flex Architectures
>>> Adobe Certified Expert Flex 3 with AIR
>>>
>>> Sofshore Informática
>>> http://www.sofshore.com.br
>>> +55 (48) 3337 2003
>>> Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
>>> Florianopolis SC Brasil
>>>
>>> >>>
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Reply via email to