Fórum gnre RJ #499803
31/10/2014
0
Estou precisando de ajuda para consumir o serviço do webservice GNRE RJ.
//http://www1.fazenda.rj.gov.br/projetoGCTBradesco/br/gov/rj/sef/gct/webservice/GerarDocumentoArrecadacaoWS.jws?WSDL
Alguem pode ajudar ?
Obtenho erro nesse trecho do codigo.
doc.setItensPagamentos(jaxbElement);
Frigorifico Sa
Curtir tópico
+ 0Posts
31/10/2014
Frigorifico Sa
Estou precisando de ajuda para consumir o serviço do webservice GNRE RJ.
//http://www1.fazenda.rj.gov.br/projetoGCTBradesco/br/gov/rj/sef/gct/webservice/GerarDocumentoArrecadacaoWS.jws?WSDL
Alguem pode ajudar ?
Obtenho erro nesse trecho do codigo.
doc.setItensPagamentos(jaxbElement);
ant -f C:\\Users\\ricardoht\\Documents\\NetBeansProjects\\GNRErj run
init:
Deleting: C:\Users\ricardoht\Documents\NetBeansProjects\GNRErj\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\ricardoht\Documents\NetBeansProjects\GNRErj\build\built-jar.properties
wsimport-init:
wsimport-client-GerarDocumentoArrecadacaoWS:
files are up to date
wsimport-client-generate:
Compiling 1 source file to C:\Users\ricardoht\Documents\NetBeansProjects\GNRErj\build\classes
Note: C:\Users\ricardoht\Documents\NetBeansProjects\GNRErj\src\gnrerj\GNREcontroller.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
compile:
run:
Formated Date 2014-10-31
5195002000105
Exception in thread "main" java.lang.ClassCastException: gnrerj.client.ArrayOfItemPagamento$JaxbAccessorF_itemPagamento cannot be cast to com.sun.xml.internal.bind.v2.runtime.reflect.Accessor
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:184)
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:176)
at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:267)
at com.sun.xml.internal.bind.v2.runtime.property.ArrayProperty.<init>(ArrayProperty.java:54)
at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.<init>(ArrayERProperty.java:73)
at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty.<init>(ArrayElementProperty.java:85)
at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.<init>(ArrayElementNodeProperty.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113)
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:166)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:494)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:311)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:126)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1148)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:173)
at com.sun.xml.internal.bind.api.JAXBRIContext.newInstance(JAXBRIContext.java:96)
at com.sun.xml.internal.ws.developer.JAXBContextFactory$1.createJAXBContext(JAXBContextFactory.java:98)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:151)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:143)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:143)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:84)
at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:235)
at com.sun.xml.internal.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:672)
at com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:660)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:294)
at javax.xml.ws.Service.getPort(Service.java:134)
at gnrerj.client.GerarDocumentoArrecadacaoWS_Service.getGerarDocumentoArrecadacaoWSSoapPort(GerarDocumentoArrecadacaoWS_Service.java:72)
at gnrerj.GNREcontroller.enviarDados(GNREcontroller.java:395)
at gnrerj.GNREcontroller.leituraJaxpXML(GNREcontroller.java:332)
at gnrerj.GNREcontroller.<init>(GNREcontroller.java:62)
at gnrerj.GNRErj.main(GNRErj.java:48)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 6 segundos)
Gostei + 0
31/10/2014
Frigorifico Sa
private static String formataData(String info) throws DOMException, ParseException {
//todo
DateFormat emissaoFormat = new SimpleDateFormat("yyyy-MM-dd");
emissaoFormat.setLenient(false);
Date emissaoDate = emissaoFormat.parse(info);
Date myDateEmissao = new Date(emissaoDate.getTime());
String emissaoDataFormat = new SimpleDateFormat("dd/MM/yyyy").format(myDateEmissao);
return emissaoDataFormat;
}
public GNREcontroller() {
try {
leituraJaxpXML();
} catch (JAXBException ex) {
Logger.getLogger(GNREcontroller.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParseException ex) {
Logger.getLogger(GNREcontroller.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static ArrayOfDocumento documentos = new ArrayOfDocumento();
private static ArrayOfItemPagamento items = new ArrayOfItemPagamento();
/**
* @param args the command line arguments
*/
public static void leituraJaxpXML() throws JAXBException, ParseException {
DocumentBuilder builder = null;
Document document = null;
JAXBElement<ArrayOfItemPagamento> jaxbElement = new JAXBElement(
new QName(ArrayOfItemPagamento.class.getName()), ArrayOfItemPagamento.class, items);
//
JAXBContext ctx = JAXBContext.newInstance(ArrayOfItemPagamento.class);
// // create JAXB context and instantiate marshaller
Marshaller m = ctx.createMarshaller();
Emitente emitente = new Emitente();
emitente.setCnpjEmitente(Long.parseLong("0"));
emitente.setEmail(com.br");
try {
//Realizando o parser do XML para o objeto Document
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
document = builder.parse(new File("guias.xml"));
//Recuperando o elemento raiz
Element raiz = document.getDocumentElement();
NodeList contatos = raiz.getElementsByTagName("TDadosGNRE");
StringBuffer print = new StringBuffer();
Documento docGeral = new Documento();
//Navegando na estrutura do XML
for (int idItem = 0; idItem < contatos.getLength(); idItem++) {
Element contato = (Element) contatos.item(idItem);
NodeList infos = contato.getElementsByTagName("*");
print.append("\nContato: " + idItem);
Documento doc = new Documento();
ItemPagamento item = new ItemPagamento();
for (int idSubItem = 0; idSubItem < infos.getLength(); idSubItem++) {
Element info = (Element) infos.item(idSubItem);
print.append("\n\t" + info.getNodeName() + " = " + info.getFirstChild().getNodeValue());
doc.setTipoDocumento(1);
doc.setTipoPagamento(2);
String nomeCampo = info.getNodeName();
switch (nomeCampo) {
case "c33_dataPagamento":
String dataFormat = formataData(info.getFirstChild().getNodeValue());
doc.setDataPagamento(dataFormat);
item.setDataVencimento(dataFormat);
break;
case "c21_cepEmitente":
item.setCepContribuinte(Integer.parseInt(info.getFirstChild().getNodeValue()));
break;
case "CNPJ":
item.setCnpj(Long.parseLong(info.getFirstChild().getNodeValue()));
item.setNotaFiscalCnpj(Long.parseLong(info.getFirstChild().getNodeValue()));
break;
case "c26_produto":
item.setCodigoProduto(Long.parseLong("469"));
break;
case "dataEmissao":
String emissaoDataFormat = formataData(info.getFirstChild().getNodeValue());
Date geraData = new Date();
String DATE_FORMAT = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
String fatoData = formataData(sdf.format(geraData));
System.out.println("Formated Date " + sdf.format(geraData));
item.setDataFatoGerador(fatoData);
item.setNotaFiscalDataEmissao(emissaoDataFormat);
break;
case "**22_telefoneEmitente":
String Str = new String(info.getFirstChild().getNodeValue());
Str = Str.substring(0, 3);
item.setDddContribuinte(Integer.parseInt(Str));
String Str1 = new String(info.getFirstChild().getNodeValue());
Str1 = Str1.substring(3, 11);
System.err.println(Str);
item.setTelefoneContribuinte(Long.parseLong(Str1));
break;
case "periodo": //todo
item.setDiaVencimento(10);
item.setPeriodoReferenciaDecendio(idSubItem);
break;
case "endreco"://opcional
break;
case "c17_inscricaoEstadualEmitente":
item.setInscEstadualRJ(Integer.parseInt(info.getFirstChild().getNodeValue()));
break;
case "municipio":
break;
case "razaoSocial":
break;
case "c04_docOrigem":
Long nfe = Long.parseLong(info.getFirstChild().getNodeValue());
item.setNotaFiscalNumero(nfe);
BigInteger bi = BigInteger.valueOf(nfe.intValue());
item.setNumDocOrigem(bi);
item.setNumControleContribuinte(info.getFirstChild().getNodeValue());
break;
case "serie":
item.setNotaFiscalSerie(Integer.parseInt(info.getFirstChild().getNodeValue()));
item.setNotaFiscalTipo("NF-e");
break;
case "NumControleContribuinte":
break;
case "mes":
// item.setPeriodoReferenciaAno(Integer.parseInt(info.getFirstChild().getNodeValue()));
break;
case "ano":
// item.setPeriodoReferenciaAno(Integer.parseInt(info.getFirstChild().getNodeValue()));
break;
case "c06_valorPrincipal":
String value = info.getFirstChild().getNodeValue();
Double money = new Double(value);
item.setValorICMSPrincipal(money);
break;
case "c10_valorTotal":
String value1 = info.getFirstChild().getNodeValue();
Double money1 = new Double(value1);
item.setValorTotal(money1);
item.setValorFECPPrincipal(new Double("0"));
break;
default:
item.setInformacoesComplementares("FRIGO");
item.setNatureza(Long.parseLong("2"));
break;
}
}
item.setPassaporte("0");
item.setEnderecoContribuinte("0");
item.setCpf(Long.parseLong("0"));
item.setMunicipioContribuinte("");
item.setNomeRazaoSocial("");
item.setNotaFiscalCpf(Long.parseLong("0"));
item.setNaturezaQualificacao(Long.parseLong("0"));
item.setTipoApuracao(Integer.parseInt("0"));
item.setTipoPeriodoApuracao("");
item.setTelefoneContribuinte(Long.MIN_VALUE);
item.setUfContribuinte("RJ");
// items.getItemPagamento().add(item);
// System.out.println(item.toString());
items.getItemPagamento().add(item);
System.out.println(items.getItemPagamento().get(idItem).getCnpj());
jaxbElement.setValue(items);
doc.setItensPagamentos(jaxbElement);
documentos.getDocumento().add(doc);
enviarDados(emitente, documentos);
//http://www1.fazenda.rj.gov.br/projetoGCTBradesco/br/gov/rj/sef/gct/webservice/GerarDocumentoArrecadacaoWS.jws?WSDL
// System.out.println(print);
}
} catch (ParserConfigurationException e) {
System.out.println("Erro de parser");
e.printStackTrace();
} catch (SAXParseException e) {
System.out.println("Erro do parser SAX");
e.printStackTrace();
} catch (SAXException e) {
System.out.println("Erro no SAX");
e.printStackTrace();
} catch (IOException e) {
System.out.println("Erro de I/O");
e.printStackTrace();
}
}
private static ChamadaDadosWebServiceRefLote enviarDados(gnrerj.client.Emitente emitente, gnrerj.client.ArrayOfDocumento documentos) {
System.setProperty("https.proxyHost", "0.0.0.0");
System.setProperty("https.proxyPort", "0");
System.setProperty("https.proxyUser", "0");
System.setProperty("https.proxyPassword", "0");
gnrerj.client.GerarDocumentoArrecadacaoWS_Service service = new gnrerj.client.GerarDocumentoArrecadacaoWS_Service();
gnrerj.client.GerarDocumentoArrecadacaoWS port = service.getGerarDocumentoArrecadacaoWSSoapPort();
return port.enviarDados(emitente, documentos);
}
private static ChamadaDadosDocArrecadacaoWebService enviarDadosAuto(gnrerj.client.DocumentoAuto documento) {
gnrerj.client.GerarDocumentoArrecadacaoWS_Service service = new gnrerj.client.GerarDocumentoArrecadacaoWS_Service();
gnrerj.client.GerarDocumentoArrecadacaoWS port = service.getGerarDocumentoArrecadacaoWSSoapPort();
return port.enviarDadosAuto(documento);
}
private static ConsultaDadosWebService consultarDados(java.lang.Long cnpj, java.lang.String idSessao) {
gnrerj.client.GerarDocumentoArrecadacaoWS_Service service = new gnrerj.client.GerarDocumentoArrecadacaoWS_Service();
gnrerj.client.GerarDocumentoArrecadacaoWS port = service.getGerarDocumentoArrecadacaoWSSoapPort();
return port.consultarDados(cnpj, idSessao);
}
}
Gostei + 0
01/11/2014
Frigorifico Sa
O problema era versão.
Agora estou com este problema:
Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection timed out: connect
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:117)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:194)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:122)
at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:95)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467)
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:308)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:163)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at com.sun.proxy.$Proxy30.enviarDados(Unknown Source)
at gnrerj.GNREcontroller.enviarDados_1(GNREcontroller.java:363)
at gnrerj.GNREcontroller.leituraJaxpXML(GNREcontroller.java:281)
at gnrerj.GNREcontroller.<init>(GNREcontroller.java:76)
at gnrerj.GNRErj.main(GNRErj.java:21)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient$1.run(HttpClient.java:484)
at sun.net.www.http.HttpClient$1.run(HttpClient.java:482)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.http.HttpClient.privilegedOpenServer(HttpClient.java:481)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:522)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:975)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091)
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:105)
... 17 more
Java Result: 1
Gostei + 0
12/11/2014
Webconsultoria
Você conseguiu fazer a comunicação completa ?
Nós trabalhamos com PHP e esse webservice é o único que não conseguimos trabalhar, até a NFe que é mais complexa fizemos com sucesso.
Abraço !
Cristemir
Gostei + 0
12/11/2014
Frigorifico Sa
Consegui ontem com o eclipse, tentei com o NetBeans 7.3 e 7.4 sem sucesso.
Acertei o endereço conforme abaixo, agora estou tratando o retorno.
// Use to get a proxy class for GerarDocumentoArrecadacaoWSSoapPort
private java.lang.String GerarDocumentoArrecadacaoWSSoapPort_address = "http://www1.fazenda.rj.gov.br/projetoGCTBradesco/br/gov/rj/sef/gct/webservice/GerarDocumentoArrecadacaoWS.jws?wsdl";
Abraço !
Ricardo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)