Alguem ja implementou os novos webservices da nota fiscal eletronica, os webservice 2.0. Estou usando o JAX-WS.
O codigo que foi gerado pelo netbeans foi esse:
br.com.ces.wsdl.cliente.homologacao.mg.retrecepcao.NfeRetRecepcao2 service = new br.com.ces.wsdl.cliente.homologacao.mg.retrecepcao.NfeRetRecepcao2();
br.com.ces.wsdl.cliente.homologacao.mg.retrecepcao.NfeRetRecepcao2Soap port = service.getNfeRetRecepcao2Soap12();
// TODO initialize WS operation arguments here
br.com.ces.wsdl.cliente.homologacao.mg.retrecepcao.NfeDadosMsg nfeDadosMsg = new br.com.ces.wsdl.cliente.homologacao.mg.retrecepcao.NfeDadosMsg();
// TODO process result here
br.com.ces.wsdl.cliente.homologacao.mg.retrecepcao.NfeRetRecepcao2Result result = port.nfeRetRecepcao2(nfeDadosMsg);
System.out.println("Result = "+result);
Como que eu vou usar isso meu deus!!!
Por que o povo do governo nao coloca os exemplos de como usar isso!!!
Eu ja tive problema parecido quando precisei acessar um webservice do sintegra, com o netbeans nao consegui nem a pau gerar o codigo correto pelo JAX, instalei o eclipse gerei um projeto webservice e busquei o wsdl ele gera as classes e codigos pra mim, ae copiei e adaptei para o netbeans e ta tudo belezinha
[quote=furacao123]Eu ja tive problema parecido quando precisei acessar um webservice do sintegra, com o netbeans nao consegui nem a pau gerar o codigo correto pelo JAX, instalei o eclipse gerei um projeto webservice e busquei o wsdl ele gera as classes e codigos pra mim, ae copiei e adaptei para o netbeans e ta tudo belezinha
falows[/quote]
Qual plugin vc usou no eclipse? tem como voce postar um exemplo de como ficou o seu codigo?
Não usei plugin nenhum apenas instalei o eclipse J2EE ae voce vai la em criar projeto e em webservices voce linka com o wsdl e ele cria as classes para acesso cliente ao webservice, não tem como te mostrar exemplo pois o webservice que eu acessava é de função diferente, depois que voce gerar pelo eclipse confronta com o do netbeans, no meu caso depois de muito tempo tentando eu abandonei a geração automatica do netbeans e copiei tudo oq o eclipse gerou no projeto no netbeans e dei continuidade no projeto
Estou tentando usar o eclipse para gerar o cliente atraves dos wsdl’s da receita e esta dando o seguinte erro:
IWAB0399E Error in generating Java from WSDL: java.io.IOException: No symbol table entry found for message {tns}nfeStatusServicoNF2nfeCabecMsg
java.io.IOException: No symbol table entry found for message {tns}nfeStatusServicoNF2nfeCabecMsg
at org.apache.axis.wsdl.symbolTable.FaultInfo.<init>(FaultInfo.java:138)
at org.apache.axis.wsdl.symbolTable.SymbolTable.fillInBindingInfo(SymbolTable.java:2687)
Olha o meu codigo que gerei. Usei o Axis2, so que gerei os stubs atraves do wsdl2java.bat.
Abaixo o meu codigo completo:
public class Main {
public static void main(String[] args) {
setarDadosDoCertificadoA1();
mandarParaReceita();
}
private static void mandarParaReceita() {
try {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.07\"><tpAmb>2</tpAmb><cUF>31</cUF><xServ>STATUS</xServ></consStatServ>";
NfeStatusServico2Stub stub = new NfeStatusServico2Stub();
NfeStatusServico2Stub.NfeDadosMsg dados = new NfeStatusServico2Stub.NfeDadosMsg();
OMElement el;
el = AXIOMUtil.stringToOM(xml);
dados.setExtraElement(el);
NfeStatusServico2Stub.NfeCabecMsg cab = new NfeStatusServico2Stub.NfeCabecMsg();
cab.setVersaoDados("2.00");
cab.setCUF("31");
NfeStatusServico2Stub.NfeCabecMsgE cabE = new NfeStatusServico2Stub.NfeCabecMsgE();
cabE.setNfeCabecMsg(cab);
System.out.println(stub.nfeStatusServicoNF2(dados, cabE).getExtraElement());
} catch (Exception e) {
e.printStackTrace();
}
}
private static void setarDadosDoCertificadoA1() {
try {
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "C:\\certificados\\keystore.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "123456");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", "C:\\certificados\\certificado.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Esta dando o seguinte erro:
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:200)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at com.teste.wsdl.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:196)
at javaapplication9.Main.mandarParaReceita(Main.java:44)
at javaapplication9.Main.main(Main.java:24)
Dei uma pernada com relação ao erro acima de URl, realmente estava errado a URL, arrumei a URL e agora esta dando esse erro:
org.apache.axis2.AxisFault: Transport level information does not match with SOAP Message namespace URI
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at com.teste.wsdl.NfeStatusServico2Stub.nfeStatusServicoNF2(NfeStatusServico2Stub.java:196)
at javaapplication5.Main.mandarParaReceita(Main.java:43)
at javaapplication5.Main.main(Main.java:19)
Caused by: org.apache.axiom.soap.SOAPProcessingException: Transport level information does not match with SOAP Message namespace URI
at org.apache.axis2.builder.BuilderUtil.validateSOAPVersion(BuilderUtil.java:768)
at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:62)
at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:197)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:108)
... 8 more
Esse negocio do governo ta foda, a cada hora surge um problema diferente.
vcsmetallica, conseguiu resolver o problema da mensagem : org.apache.axis2.AxisFault: Transport level information does not match with SOAP Message namespace URI ?
Estou com o mesmo problema quando vou consultar o status do PR por exemplo.
Como respondi acima, ainda estou tendo problemas com o JAX-WS.
Consegui enviar a minha nota, mas quando estou usando o web service para consutar a nota que mandei esta dando o seguinte erro:
javax.xml.ws.soap.SOAPFaultException: Fault occurred while processing.
at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.createSystemException(MethodMarshallerUtils.java:1249)
at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:975)
at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitBareMethodMarshaller.demarshalFaultResponse(DocLitBareMethodMarshaller.java:412)
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:443)
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:406)
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:330)
at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:159)
at $Proxy26.nfeRetRecepcao2(Unknown Source)
at br.com.ces.wsdl.RetRecepcao.enviarRetRecepcao(RetRecepcao.java:64)
at br.com.ces.controle.ControleConsultarRetRecepcaoNFe.consultarNFe(ControleConsultarRetRecepcaoNFe.java:45)
at br.com.ces.junit.TesteConsutaNFe.enviarNFE(TesteConsutaNFe.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:422)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:931)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:785)
Não estou conseguindo identificar esse erro.
Abaixo os meus codigos
Minha classe que eu envio para a receita - ConsReciNFe: