| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2008 08:23:04
|
nandobgi
Java Ninja
![[Avatar]](/images/avatar/45ab12afa05e563bb484781693dffc87.jpg)
Membro desde: 27/03/2006 07:27:06
Mensagens: 280
Localização: Birigui-SP
Offline
|
Pessoal estou utilizando JAXB para montar meus arquivos xml, baixei o plugin do eclipse para gerar as classes com base nos schemas, o arquivo montado é uma nota fiscal eletrônica, estou tendo problemas no namespace do xml.
Arquivo Gerado
Mas a forma correta seria assim
Estou gerando meu arquivo da seguinte forma.
Alguém ja passou por isso e poderia me ajudar por favor
Grato
|
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2008 20:38:52
|
mateusprado
JavaEvangelist
![[Avatar]](/images/avatar/b7e2588d3cbee971f93dd87308720d90.jpg)
Membro desde: 26/02/2008 07:20:38
Mensagens: 412
Localização: Araraquara, SP
Offline
|
Ola Fernando, qual e' o erro, ou mensagem que esta lhe retornando ?
|
Mateus Prado

Caelum Stella
SCJP - Sun Certified Java Programmer
SCWCD - Sun Certified Web Component Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2008 20:42:49
|
nandobgi
Java Ninja
![[Avatar]](/images/avatar/45ab12afa05e563bb484781693dffc87.jpg)
Membro desde: 27/03/2006 07:27:06
Mensagens: 280
Localização: Birigui-SP
Offline
|
Ola Mateus tudo bem?
Quando tento transmitir o arquivo ou vou valida-lo é retornado um erro de que o cabeçalho está incorreto.
O arquivo gerado por mim parece estar incorreto na declaração dos namespaces.
Grato
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/11/2008 18:24:44
|
roassunca
Thread.start()
![[Avatar]](/images/avatar/0f9a0878fcaf0dde29b4e487aa8bbb44.jpg)
Membro desde: 10/03/2005 11:54:46
Mensagens: 28
Offline
|
Fernando, qual plugin do Eclipse vc tah usando?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/02/2009 09:58:27
|
isaiasa
Entusiasta Java
Membro desde: 28/06/2007 17:15:37
Mensagens: 15
Offline
|
Não há nada de errado com plugins dele, o problema é que o JAXB é bom demais.
Deixa eu explicar:
Assim como o eclipse, outras ferramentas não funcionam com o NS2, vai falar para eles que não esta errado e que o JAXB só quiz fazer da maneira certa?
Pois é.. Não consegui fazer ele parar de gerar o ns2 assim como o amigo descreveu no post, então foi obrigado à atacar para a apelação, pois a definição de namespace no jaxb é simples..
@XmlRootElement(name="urlset",namespace="http://www.sitemaps.org/schemas/sitemap/0.9")
@XmlAccessorType(XmlAccessType.FIELD)
Porém SEMPRE ele gera com o maldito ns2 e as ferramentas que vão ler "quase" sempre se batem por causa dele.
Não tenho nada contra o jaxb, pelo contrário, ele me ajuda MUITO, porém ajuda tanto e faz as coisas tão certo que acaba atrapalhando quando quem vai ler do outro lado não o faz.
Por isso eu escrevi um artigo no meu blog com a solução para o problema:
SEQUE O LINK:
http://www.informativogeral.com.br/?post=JAXB-E-O-MALDITO-NS2
DIGO E REPITO: Não é a melhor solução, mas resolve o problema na hora e você não priva-se de usar os benefícios do JAXB, já que ele só é acionado como forma de AJUSTE do xml depois do parse:
Abraços
This message was edited 1 time. Last update was at 19/02/2009 10:00:02
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 15:01:48
|
andrefariagomes
JavaBaby
![[Avatar]](/images/avatar/26ff6f4ca1cfca4861eb91876f706746.png)
Membro desde: 18/09/2004 11:10:06
Mensagens: 90
Offline
|
Olá Pessoal,
Estou tendo problemas para gerar os beans da Nota Fiscal Eletronica com JAXB, parece que um XSD faz include do outro e dá pau...
Vocês consguiram fazer funcionar numa boa?
O comando que tentei usar é o seguinte:
xjc -d ../../java/ cabecMsg_v1.02.xsd enviNFe_v1.10.xsd retEnviNFe_v1.10.xsd consReciNFe_v1.10.xsd retConsReciNFe_v1.10.xsd cancNFe_v1.07.xsd retCancNFe_v1.07.xsd consSitNFe_v1.07.xsd retConsSitNFe_v1.07.xsd consStatServ_v1.07.xsd retConsStatServ_v1.07.xsd consCad_v1.01.xsd leiauteConsultaCadastro_v1.01.xsd -h
Abraço
|
Abraço,
André Faria
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/10/2009 14:40:40
|
alves.Felipe
Virtual Machine Man
![[Avatar]](/images/avatar/1d225d267a78f71ea5abb2364f4e91c4.jpg)
Membro desde: 21/01/2008 13:45:56
Mensagens: 737
Localização: Curitiba - Pr
Offline
|
andrefariagomes wrote:Olá Pessoal,
Estou tendo problemas para gerar os beans da Nota Fiscal Eletronica com JAXB, parece que um XSD faz include do outro e dá pau...
Vocês consguiram fazer funcionar numa boa?
O comando que tentei usar é o seguinte:
xjc -d ../../java/ cabecMsg_v1.02.xsd enviNFe_v1.10.xsd retEnviNFe_v1.10.xsd consReciNFe_v1.10.xsd retConsReciNFe_v1.10.xsd cancNFe_v1.07.xsd retCancNFe_v1.07.xsd consSitNFe_v1.07.xsd retConsSitNFe_v1.07.xsd consStatServ_v1.07.xsd retConsStatServ_v1.07.xsd consCad_v1.01.xsd leiauteConsultaCadastro_v1.01.xsd -h
Abraço
pra quem tiver a mesma dúvida...
http://www.technopub.com.br/index.php?page=artigos&id=10
|
Felipe Alves |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2010 13:52:00
|
carlos.scuna
Debugger
![[Avatar]](/images/avatar/531d29a813ef9471aad0a5558d449a73.png)
Membro desde: 06/08/2006 23:29:57
Mensagens: 53
Offline
|
isaiasa wrote:Não há nada de errado com plugins dele, o problema é que o JAXB é bom demais.
Deixa eu explicar:
Assim como o eclipse, outras ferramentas não funcionam com o NS2, vai falar para eles que não esta errado e que o JAXB só quiz fazer da maneira certa?
Pois é.. Não consegui fazer ele parar de gerar o ns2 assim como o amigo descreveu no post, então foi obrigado à atacar para a apelação, pois a definição de namespace no jaxb é simples..
@XmlRootElement(name="urlset",namespace="http://www.sitemaps.org/schemas/sitemap/0.9")
@XmlAccessorType(XmlAccessType.FIELD)
Porém SEMPRE ele gera com o maldito ns2 e as ferramentas que vão ler "quase" sempre se batem por causa dele.
Não tenho nada contra o jaxb, pelo contrário, ele me ajuda MUITO, porém ajuda tanto e faz as coisas tão certo que acaba atrapalhando quando quem vai ler do outro lado não o faz.
Por isso eu escrevi um artigo no meu blog com a solução para o problema:
SEQUE O LINK:
http://www.informativogeral.com.br/?post=JAXB-E-O-MALDITO-NS2
DIGO E REPITO: Não é a melhor solução, mas resolve o problema na hora e você não priva-se de usar os benefícios do JAXB, já que ele só é acionado como forma de AJUSTE do xml depois do parse:
Abraços
Li o artigo acima, e gostaria de saber aí se a galera não descobriu uma maneira melhor de resolver isso.
Estou começando agora um projeto com NFe e já acabei de topar com esse mesmo problema do JAX-B. Vi que esse artigo tem mais de 1 ano já, então a pergunta é: já conseguiu uma outra forma menos "gambiarroza" de resolver isso? Eu vi que acertando os elementos dos beans gerados pelo JAXB ele vai mudando a forma de como utiliza os prefixos, mas não cheguei a um consenso a respeito.
Se descobriram outra forma, por favor, postem aí como funcionado.
Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2010 17:02:14
|
isaiasa
Entusiasta Java
Membro desde: 28/06/2007 17:15:37
Mensagens: 15
Offline
|
SIm, há solução de personalizar os namespaces, no link:
http://blogs.sun.com/enterprisetechtips/entry/customizing_jaxb
Você encontra a solução.
Você precisa criar uma classe que estenda NamespacePrefixMapper vide:
Depois no seu marshaller voce seta:
Abraço
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 20:10:44
|
gr_marco
JavaChild
Membro desde: 13/05/2005 11:39:03
Mensagens: 142
Localização: Curitiba
Offline
|
Mesmo assim... se eu mando retornar "", ele tenta colocar o default, que no caso é aquele ns2 indesejado...
Falta implementar mais alguma coisa???
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2010 09:42:22
|
isaiasa
Entusiasta Java
Membro desde: 28/06/2007 17:15:37
Mensagens: 15
Offline
|
Quais das opções abaixo resolvem teu problema?
- Gerar o xml sem nenhum namespace? S: Não anote nenhum nameSpace no seu bean que foi anotado para trabalhar com JAXB.
- Gerar o xml com 1 único namespace? S: se for isso, veja exemplo abaixo.
Implementação:
This message was edited 1 time. Last update was at 13/04/2010 09:43:19
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2010 14:47:41
|
carlos.scuna
Debugger
![[Avatar]](/images/avatar/531d29a813ef9471aad0a5558d449a73.png)
Membro desde: 06/08/2006 23:29:57
Mensagens: 53
Offline
|
isaiasa wrote:Quais das opções abaixo resolvem teu problema?
- Gerar o xml sem nenhum namespace? S: Não anote nenhum nameSpace no seu bean que foi anotado para trabalhar com JAXB.
- Gerar o xml com 1 único namespace? S: se for isso, veja exemplo abaixo.
Implementação:
Na verdade nenhum dos dois. O problema meu, que é o mesmo do Marco, é que o JAXB parece não permitir a utilização de tags não prefixadas para namespaces diferentes. Por exemplo, o seguinte XML nunca poderia ser marshallizado através do JAXB:
O que o JAXB faria no caso de tentar marshallizar os beans correspondentes ao XML acima é:
Enfim... teria alguma maneira de fazer com que o JAXB marshalize para o primeiro XML ???
Já tentei com todas as formas do NamespacePrefixMapper, utilizando todos os métodos ali, e nada até agora.
A solução até o momento é porcamente remover os prefixos com replace(...). Porca mesmo!!!
Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2010 15:36:29
|
isaiasa
Entusiasta Java
Membro desde: 28/06/2007 17:15:37
Mensagens: 15
Offline
|
Carlos
Teu caso é diferente do caso que passei.
Mas tenho um teste para propor:
Baseando-se no exemplo abaixo, que é nosso alvo:
Tu poderias tentar colocar o conteudo de subTag4 em uma outra classe anotada com o namespace http://www.example2.org unicamente e depois acrescer esse xml após o marshall à o seu conteudo da seguinte forma:
e depois montar o xml:
Eu não consegui testar essa solução, por isso é uma sugestão, vou ver se consigo fazer o mesmo teste quando eu chegar em casa, estou meio enrolado aqui no serviço agora. Mas ACREDITO que deva resolver, porque note que os marshall's são feitos de forma separada, se isso é uma deficiencia mesmo do JAXB, após o marshall a "CACA" ja foi feita e nós sabemos que esses problemas só ocorrem quando temos mais de 1 ns... no caso será 1 para cada documento.
Continuo em alerta para tentarmos resolver o problema e termos uma solução mais limpa.
Abraço
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2011 20:06:06
|
aix
Virtual Machine Man
![[Avatar]](/images/avatar/a72795d6874581a395f8a2ba7c4a0068.jpg)
Membro desde: 16/09/2007 08:31:00
Mensagens: 549
Online
|
Pessoal nada ainda ? para a solução deste problema ?
estou trabalahndo nisto, se alguem ja resolveu ou tem a solução, por favor compartilhe.
This message was edited 1 time. Last update was at 06/03/2011 20:06:47
|
A estrada do excesso leva ao palácio da sabedoria. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2011 09:31:36
|
aix
Virtual Machine Man
![[Avatar]](/images/avatar/a72795d6874581a395f8a2ba7c4a0068.jpg)
Membro desde: 16/09/2007 08:31:00
Mensagens: 549
Online
|
Ola Isaiasa,
vi seu post sobre os prefixos nas namespace da NF-e, vi que se vc manter as classes(objetos que representão o xml de consumo do serviço) ex: ConsStatServ.java estar no pacote br.inf.portalfiscal.nfe.wsdl.nfestatusservico2\ vc não tera esses prefixos gerados.
Notei que isso traz problemas quando vc limpa e controi a aplicação gerando os stubs novamente vc perdia a alteração que vc havia feito nas classes:
1- a configuração na classe ObjectFactory gerada pelo Cliente WS(public ConsStatServ createConstatSet()),
2 - uma anotação na NfeCabecMsg()(classe tambem gerada pelo cliente ws)
ex:
se eu não der clean and build tudo blz, pois posso apenas constuir sem limpar, assim não perco o que fiz.
agora pergunto, tem alguma maneira melhor de fazer isto ? para que eu possa usar o gerador do cliente e configura-lo a ponto de não precisar fazer essas alterações manualmente ? ex: para podermos gerar os stubs de maneira correta com o método de consumo do serviço aceitando 2 parametros(nfeCabecMsg e NfeDadosMsg) temos que "editar atributos do serviço web" para colocar a linha XadditionalHeaders para true, após atualizado a referencia do serviço web ou limpado e construindo ele gera tudo novamente, de maneira correta.
|
A estrada do excesso leva ao palácio da sabedoria. |
|
|
 |
|
|