*[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 <[email protected]>
> 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 <[email protected]>
>
> 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 <[email protected]>
>>
>> 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 <[email protected]>
>>>
>>>> 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 <[email protected]>
>>>>
>>>>> 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 <[email protected]>
>>>>>
>>>>>> @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 <[email protected]>
>>>>>>
>>>>>>> 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 <[email protected]>
>>>>>>>
>>>>>>>> é 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 [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---