Jaxb unmarshal não funciona  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
giovanni_stiwes
JavaGuru

Membro desde: 20/04/2006 09:00:42
Mensagens: 236
Offline

Estou usando o jaxb para gerar a nota fiscal eletronica, até agora tudo certo, gerei as classes através dos xsd e wsld, gerei o xml, enviei para a receita, recebi o xml de resposta, mas quando vou fazer o unmarshal, o jaxb so faz do no raiz, os elementos vem todos nulos.

XML de Retorno:


Classe bean:


unmarshal:


Alguem tem alguma idéia do q acontece?

This message was edited 1 time. Last update was at 30/09/2009 09:36:28

[MSN]
brunofuster
HelloWorld
[Avatar]

Membro desde: 05/04/2007 12:52:41
Mensagens: 14
Offline

Tente definir os atributos "name" dos XmlElements, talvez funcione.

@XmlElement(required = true, name = "tpAmb")
protected String tpAmb;

This message was edited 1 time. Last update was at 30/09/2009 10:12:01

giovanni_stiwes
JavaGuru

Membro desde: 20/04/2006 09:00:42
Mensagens: 236
Offline

Já tinha tentado esta alternativa, mas não funcionou.
[MSN]
brunofuster
HelloWorld
[Avatar]

Membro desde: 05/04/2007 12:52:41
Mensagens: 14
Offline

Já tentou definir o namespace também ?
giovanni_stiwes
JavaGuru

Membro desde: 20/04/2006 09:00:42
Mensagens: 236
Offline

Definindo o namespace nos elementos, passa a funcionar.

Vc tem ideia do motivo, eu usei o xcj para gerar os beans.
[MSN]
giovanni_stiwes
JavaGuru

Membro desde: 20/04/2006 09:00:42
Mensagens: 236
Offline

Para quem interessar resolvi assim
[MSN]
brunofuster
HelloWorld
[Avatar]

Membro desde: 05/04/2007 12:52:41
Mensagens: 14
Offline

Também usei o xjc e tive o mesmo problema.

Isso acontece porque o elemento vem com o namespace definido e o JAXB não o encontra se o namespace não estiver declarado no XmlElement.

Resolvi colocando o namespace na annotation, e depois consigo realizar o unmarshall com 2 linhas:

unmarshaller = context.createUnmarshaller();
unmarshaller.unmarshal( response );
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team