Cabeçalho para consumir WS da NFe  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

Beleza galera...

Estou com um problema de montar a mensagem de cabeçalho para consumir o ws da nfe.

Outro problema também é que não entendi muito bem os novos métodos dos Serviços. Por exemplo, O método do WS de Status Serviço da Sefaz-RS o nfeStatusServicoNF2(NfeDadosMsg param), tem esse parâmetro ai que um objeto que tem um atributo que um ArrayList e você insere dados nele. Só que não entendi muito que dados são esses.
Fui consultar a página do serviço e tinha o seguinte XML lá:

POST /ws/NfeStatusServico/NfeStatusServico2.asmx HTTP/1.1
Host: homologacao.nfe.sefaz.rs.gov.br
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlnssd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Header>
<nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">
<cUF>string</cUF>
<versaoDados>string</versaoDados>
</nfeCabecMsg>
</soap12:Header>
<soap12:Body>
<nfeDadosMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2">xml</nfeDadosMsg>
</soap12:Body>
</soap12:Envelope>

Substitui o que está em azul pelos dados corretos. Depois fiz um programa que lê o XML colocando todas as informações em uma String e adicionei essa String no NfeDadosMsg e enviei para o WS, que me retornou o seguinte erro:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Server was unable to read request. ---> There is an error in XML document (1, 8589). ---> The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type.


Estou usando JAX-WS para geração das classes apartir do wsdl.

Alguém sabe o que posso fazer?
[Yahoo!] [MSN]
zoren
GUJ Master
[Avatar]

Membro desde: 30/06/2008 08:32:33
Mensagens: 1003
Offline

Não consegui fazer o consumo do WS pelo JAX, só na raça,

Pelo JAX-WS eu não consigo colocar o SOAP Header na Mensagem

Mas a estrutura do SOAP é mais ou menos essa, tirando as informações do HTTP que tem no começo, o resto é igual
[Email] [MSN]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

zoren, Você fez por qual Framework? Eu também já tentei pelo Axis2, mas dá o mesmo erro.
[Yahoo!] [MSN]
zoren
GUJ Master
[Avatar]

Membro desde: 30/06/2008 08:32:33
Mensagens: 1003
Offline

Pelo Axis2 um cara me disse que funciona


http://www.guj.com.br/posts/list/285/72325.java#1001581

posta sua classe ai
[Email] [MSN]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

como é que você gera as classes pelo Axis2? Fui tentar e deu esse erro ai:

Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: No mapping defined for element {http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2}nfeCabecMsg
[Yahoo!] [MSN]
zoren
GUJ Master
[Avatar]

Membro desde: 30/06/2008 08:32:33
Mensagens: 1003
Offline

Eu tenho uma tarefa no ant que faz isso pra mim

como vc está fazendo pra gerar?
[Email] [MSN]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

Uso esse comando:

./wsdl2java.sh -uri /root/workspace/nfe/wsdl/RS/NfeStatusServico2.wsdl -p example.ws -d jibx -uw -o /root/workspace/SoPraEstudar/
[Yahoo!] [MSN]
zoren
GUJ Master
[Avatar]

Membro desde: 30/06/2008 08:32:33
Mensagens: 1003
Offline

o que seria o parâmetro -d com o valor jibx

seria o framework usado??

eu não especifico nada qdo gero

só o destino e o wsdl
[Email] [MSN]
jurunaloco
JavaChild
[Avatar]

Membro desde: 16/06/2006 16:18:10
Mensagens: 115
Localização: Zion
Offline

ta usando o SEfaz Virtual rs ou sefaz rs mesmo ?

tenta o nfeStatusServicoNF mesmo ao invés do nfeStatusServicoNF2

ou vc está testando esse novo webservice?

bURPPP!!

aaaWWwwwAAAaaYYyyyy!!!!!!!
[WWW]
jurunaloco
JavaChild
[Avatar]

Membro desde: 16/06/2006 16:18:10
Mensagens: 115
Localização: Zion
Offline

ahh li todo o post.. eskece ihaiahihia
tb tive o mesmo problema

bURPPP!!

aaaWWwwwAAAaaYYyyyy!!!!!!!
[WWW]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

zoren, eu uso -d jibx para informar que eu quero usar o databind JiBX para ligar os dados XML a objetos Java. Como você não especifica qual quer usar o Axis2 usa o ADB.
[Yahoo!] [MSN]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

zoren eu gerei a classe sem usar o JiBX, mas o Axis gerou uma classe enorme com mais de 2500 linhas. Como é que eu uso ela?
[Yahoo!] [MSN]
zoren
GUJ Master
[Avatar]

Membro desde: 30/06/2008 08:32:33
Mensagens: 1003
Offline

Tem que ir chamando as classes internas e instânciando elas

tipo

[Email] [MSN]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

E a Factory interna a essas classes, tipo:



Ela serve para que?

This message was edited 1 time. Last update was at 26/02/2010 09:49:37

[Yahoo!] [MSN]
Thyaggo
Thread.start()

Membro desde: 26/03/2008 12:29:39
Mensagens: 49
Localização: João Pessoa - PB
Offline

zeron como você coloca o XML da NFe no NfeDadosMsg?
[Yahoo!] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team