Estou com problema em carregar os objetos que são Listas: Empresas e Temas.
Alguém tem algum modo de ler isso? Já procurei no proprio site do xstream e lá tem a função addImplicitCollection, mas fica dizendo que não está setada a coleção.
pq vc nao usa anotação para fazer isso, é bem mais traquilo.
posta o erro que está acontecendo.
t+
D
darksteel3000
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field br.gov.chesf.ped.negocio.componente.planoestrategico.to.PlanoEstrategicoDetalharXmlTO.TipoEmpresa
---- Debugging information ----
field : TipoEmpresa
class : br.gov.chesf.ped.negocio.componente.planoestrategico.to.PlanoEstrategicoDetalharXmlTO
required-type : br.gov.chesf.ped.negocio.componente.planoestrategico.to.PlanoEstrategicoDetalharXmlTO
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[1] : java.util.ArrayList
converter-type[1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
version : null
-------------------------------
vc nao vai ter @XStreamImplicit(itemFieldName=“tipoEmpresa”) na sua classe Programa
vc vai ter esse atributos na classe empresato, se os atributos forem o msm nome q no xml, vc nao precisa colocar nada, mas se for diferente vc vai precisa da anotacao alias para trocar o nome do atributo
D
darksteel3000
Então amigo, os atributos na classe EmpresaTO tem o mesmo nome que é gerado no nó do XML:
Lembrando que o que quero fazer é: ler um xml de um lugar tal, e transforma-lo em objeto.
A
alissonvla
cara,
acho que vc nao entendeu o intuito do xstream, ele trabalha com orientacao de objeto, vc vai ter uma classe que representa a tag do seu xml, PD_Programa e essa classe por sua vez possui uma lista de empresas, assim por diante
D
darksteel3000
Entendi sim amigo, vê comigo se não está de uma forma orientada a objetos:
Veja que tenho a raiz que é a minha classe postada anteriormente, e dentro dela tenho a lista de empresas, a lista de temas, inicioVigencia e fimVigencia que são um atributos da classe que possui as listas.
E dai o danado agora mostrou um erro mais descente:
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field br.gov.chesf.ped.negocio.componente.planoestrategico.to.ProgramaPlanoEstrategicoTO.Empresas
---- Debugging information ----
field : Empresas
class : br.gov.chesf.ped.negocio.componente.planoestrategico.to.ProgramaPlanoEstrategicoTO
required-type : br.gov.chesf.ped.negocio.componente.planoestrategico.to.ProgramaPlanoEstrategicoTO
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /PD_Programa/Empresas
version : null
-------------------------------
A
alissonvla
agora ta correto… rsrs
no seu xml a tag PED, vc tem q criar dois atributos e vai ser anotada como stream atributte,
vc nao vai ter a anotacao xstream implicit.
e manda o erro q ta acorrendo agora
D
darksteel3000
Amigo, não creio ter entendido sua explicação:
Tipo vc disse para eu criar 2 atributos ( ONDE? Na classe pai ou na do tipo ProgramaPlanoEstrategicoTO? ), quais atributos?
A
alissonvla
cara,
uma dica para trabalhar com xstream seria fazer o servico ao contrario, criar uma estrutura de teste de objetos java e ve se o resultado do xml é o msm que vc espera.
vai ter ajudar.
T+
D
darksteel3000
Isso já foi feito numa classe Main para testes, e o que estou querendo segue correto entre a estrutura.
Sobre o ultimo erro que postei, pelo que entendi, na minha classe que está anotada como (“ped”) ele não encontra o atributo Empresas que foi colocado em uma nova classe que é do tipo ProgramaPlanoEstrategico que está definida com anotação do xmlAlias (“pd_programa”).
Adicionei o atributo e ainda assim ele não o encontra.
A
alissonvla
cara,
o resultado que vc obteve no teste é o msm q seu xml q vc obtem?