Bom dia pessoal,
Bem tenho minhas classes de consulta da situação de um CTe, entretanto quando executo e passo a chave do CTe, o erro retornado é o seguinte
INFO: | Loading KeyStore C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts...
INFO: | Opening connection to cte.fazenda.gov.br:443...
ERROR: java.net.UnknownHostException: cte.fazenda.gov.br
log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).
log4j:WARN Please initialize the log4j system properly.
ERROR: java.io.FileNotFoundException: CTeCacertsProd (O sistema não pode encontrar o arquivo especificado)
Utilizo essa mesma lógica para NFe, e funciona perfeitamente.
Segue abaixo minhas classes para consumir o WebService:
GerarCacerts.java
package br.com.Projeto.CTe;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLHandshakeException;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
/**
*
* @author JavaC - Java Community
*/
public class GerarCacerts {
private static String JSSECACERTS = "CTeCacertsProd";
private static final int TIMEOUT_WS = 60;
public static void GeraArquivo(String enderecoWebService, String NomeDoArquivo) {
try {
/**
* Endereço do WebService.
* O Endereço abaixo é do Sefaz Virtual RS, altere para o endereço que
* for necessário.
*/
JSSECACERTS = NomeDoArquivo;
File cacertsFile = gerarCacerts(enderecoWebService, 443);
if (cacertsFile != null) {
info("| Cacerts gerado em: " + cacertsFile.getAbsolutePath());
}
} catch (Exception e) {
error(e.toString());
}
}
public static File gerarCacerts(String host, int port) throws Exception {
char[] passphrase = "changeit".toCharArray();
File file = new File(JSSECACERTS);
if (file.isFile() == false) {
char SEP = File.separatorChar;
File dir = new File(System.getProperty("java.home") + SEP + "lib" + SEP + "security");
file = new File(dir, JSSECACERTS);
if (file.isFile() == false) {
file = new File(dir, "cacerts");
}
}
info("| Loading KeyStore " + file + "...");
InputStream in = new FileInputStream(file);
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(in, passphrase);
in.close();
SSLContext context = SSLContext.getInstance("TLS");
TrustManagerFactory tmf = TrustManagerFactory.getInstance(
TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);
X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);
context.init(null, new TrustManager[] { tm }, null);
SSLSocketFactory factory = context.getSocketFactory();
info("| Opening connection to " + host + ":" + port + "...");
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
socket.setSoTimeout(TIMEOUT_WS * 1000);
try {
info("| Starting SSL handshake...");
socket.startHandshake();
socket.close();
info("| No errors, certificate is already trusted");
} catch (SSLHandshakeException e) {
/**
* PKIX path building failed:
* sun.security.provider.certpath.SunCertPathBuilderException:
* unable to find valid certification path to requested target
* Nao tratado, pois sempre ocorre essa excecao quando o cacerts
* nao esta gerado.
*/
} catch (SSLException e) {
error("| " + e.toString());
}
X509Certificate[] chain = tm.chain;
if (chain == null) {
info("| Could not obtain server certificate chain");
return null;
}
info("| Server sent " + chain.length + " certificate(s):");
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
MessageDigest md5 = MessageDigest.getInstance("MD5");
for (int i = 0; i < chain.length; i++) {
X509Certificate cert = chain[i];
sha1.update(cert.getEncoded());
md5.update(cert.getEncoded());
String alias = host + "-" + (i);
ks.setCertificateEntry(alias, cert);
info("| Added certificate to keystore '" + JSSECACERTS + "' using alias '" + alias + "'");
}
File cafile = new File(JSSECACERTS);
OutputStream out = new FileOutputStream(cafile);
ks.store(out, passphrase);
out.close();
return cafile;
}
private static class SavingTrustManager implements X509TrustManager {
private final X509TrustManager tm;
private X509Certificate[] chain;
SavingTrustManager(X509TrustManager tm) {
this.tm = tm;
}
public X509Certificate[] getAcceptedIssuers() {
throw new UnsupportedOperationException();
}
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
throw new UnsupportedOperationException();
}
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
this.chain = chain;
tm.checkServerTrusted(chain, authType);
}
}
/**
* Log info.
* @param info
*/
private static void info(String info) {
System.out.println("INFO: " + info);
}
/**
* Log error.
* @param error
*/
private static void error(String error) {
System.out.println("ERROR: " + error);
}
}
CTeConsultaCTeA1.java
package br.com.Projeto.CTe;
import br.com.Projeto.Certificados.CertificadoFactoryA1;
import br.com.Projeto.Certificados.SocketFactoryDinamicoA1;
import br.com.Projeto.Certificados.TipoCertificado;
import br.com.Projeto.Principal.FormConsultaCTe;
import br.inf.portalfiscal.www.cte.wsdl.cteconsulta.CteConsultaStub;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import java.util.Enumeration;
import java.util.Iterator;
import javax.swing.JOptionPane;
import javax.xml.stream.XMLStreamException;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.util.AXIOMUtil;
import org.apache.commons.httpclient.protocol.Protocol;
public class CTeConsultaCTeA1 {
private static final int SSL_PORT = 443;
public static String Consulta(String chaveDaCTe, String senhaDoCertificadoDoCliente) {
try {
URL url = null;
String codigoDoEstado = PegaUF.getChave().substring(0, 2);
switch(Integer.parseInt(codigoDoEstado)){
/*Rondônia*/ case 11: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Acre*/ case 12: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Amazonas*/ case 13: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Roraima*/ case 14: url = new URL("https://cte.fazenda.sp.gov.br/cteWEB/services/CteConsulta.asmx"); break;
/*Pará*/ case 15: url = new URL("https://cte.fazenda.sp.gov.br/cteWEB/services/CteConsulta.asmx"); break;
/*Amapá*/ case 16: url = new URL("https://cte.fazenda.sp.gov.br/cteWEB/services/CteConsulta.asmx"); break;
/*Tocantins*/ case 17: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Maranhão*/ case 21: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Piauí*/ case 22: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Ceará*/ case 23: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Rio Grande do Norte*/ case 24: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Paraíba*/ case 25: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Pernambuco*/ case 26: url = new URL("https://cte.fazenda.sp.gov.br/cteWEB/services/CteConsulta.asmx"); break;
/*Alagoas*/ case 27: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Sergipe*/ case 28: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Bahia*/ case 29: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Minas Gerais*/ case 31: url = new URL("https://cte.fazenda.mg.gov.br/cte/services/CteConsulta"); break;
/*Espírito Santo*/ case 32: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Rio de Janeiro*/ case 33: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*São Paulo*/ case 35: url = new URL("https://cte.fazenda.sp.gov.br/cteWEB/services/cteConsulta.asmx"); break;
/*Paraná*/ case 41: url = new URL("https://cte.fazenda.pr.gov.br/cte/CteConsulta?wsdl"); break;
/*Santa Catarina*/ case 42: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Rio Grande do Sul*/ case 43: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Mato Grosso do Sul*/ case 50: url = new URL("https://producao.cte.ms.gov.br/ws/CteConsulta"); break;
/*Mato Grosso*/ case 51: url = new URL("https://cte.sefaz.mt.gov.br/ctews/services/CteConsulta"); break;
/*Goiás*/ case 52: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
/*Distrito Federal*/ case 53: url = new URL("https://cte.svrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"); break;
default: url = new URL("https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"); break;
}
//URL url = new URL("https://www1.cte.fazenda.gov.br/CTeDistribuicaoDFe/CTeDistribuicaoDFe.asmx");
String arquivoCacertsGeradoParaCadaEstado = "CTeCacertsProd";
/**
* Informações do Certificado Digital.
*/
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
KeyStore ks;
ks = CertificadoFactoryA1.instanceOfA1("./certificado.pfx", senhaDoCertificadoDoCliente);
String alias = "";
Enumeration<String> aliasesEnum = ks.aliases();
while(aliasesEnum.hasMoreElements()){
alias = (String) aliasesEnum.nextElement();
if(ks.isKeyEntry(alias)) break;
}
X509Certificate certificate = (X509Certificate) ks.getCertificate(alias);
PrivateKey privateKey = (PrivateKey) ks.getKey(alias, senhaDoCertificadoDoCliente.toCharArray());
SocketFactoryDinamicoA1 socketFactoryDinamico = new SocketFactoryDinamicoA1(certificate, privateKey);
socketFactoryDinamico.setFileCacerts(arquivoCacertsGeradoParaCadaEstado);
Protocol protocol = new Protocol("https", socketFactoryDinamico, SSL_PORT);
Protocol.registerProtocol("https", protocol);
/**
* Xml de Consulta.
*/
// StringBuilder xml = new StringBuilder();
// xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
// .append("<consSitCTe versao=\"3.10\" xmlns=\"http://www.portalfiscal.inf.br/cte\">")
// .append("<tpAmb>1</tpAmb>")
// .append("<xServ>CONSULTAR</xServ>")
// .append("<chCTe>")
// .append(chaveDaCTe)
// .append("</chCTe>")
// .append("</consSitCTe>");
String xml = "";
xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<consSitCTe versao=\"1.04\" xmlns=\"http://www.portalfiscal.inf.br/cte\">"
+ "<tpAmb>1</tpAmb>"
+ "<xServ>CONSULTAR</xServ>"
+ "<chCTe>"
+ chaveDaCTe
+ "</chCTe>"
+ "</consSitCTe>";
OMElement ome = AXIOMUtil.stringToOM(xml);
Iterator<?> children = ome.getChildrenWithLocalName("CTe");
while (children.hasNext()) {
OMElement omElement = (OMElement) children.next();
if (omElement != null && "CTe".equals(omElement.getLocalName())) {
omElement.addAttribute("xmlns", "http://www.portalfiscal.inf.br/cte", null);
}
}
CteConsultaStub.CteDadosMsg dadosMsg = new CteConsultaStub.CteDadosMsg();
dadosMsg.setExtraElement(ome);
CteConsultaStub.CteCabecMsg cteCabecMsg = new CteConsultaStub.CteCabecMsg();
/**
* Código do Estado.
*/
cteCabecMsg.setCUF(codigoDoEstado);
/**
* Versao do XML
*/
cteCabecMsg.setVersaoDados("1.04");
CteConsultaStub.CteCabecMsgE cteCabecMsgE = new CteConsultaStub.CteCabecMsgE();
cteCabecMsgE.setCteCabecMsg(cteCabecMsg);
CteConsultaStub stub = new CteConsultaStub(url.toString());
CteConsultaStub.CteConsultaCTResult result = stub.cteConsultaCT(dadosMsg, cteCabecMsgE);
System.out.println(result.getExtraElement().toString());
return result.getExtraElement().toString();
} catch (MalformedURLException | XMLStreamException | RemoteException e) {
System.err.println(e);
} catch (Exception ex){
}
return "";
}
}
FormConsultaCte.java
package br.com.Projeto.Principal;
import br.com.Projeto.CTe.GerarCacerts;
import br.com.Projeto.CTe.CTeConsultaCTeA1;
import br.com.Projeto.CTe.PegaUF;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
public class FormConsultaCTe extends javax.swing.JFrame {
public FormConsultaCTe() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
LbChave = new javax.swing.JLabel();
JtChave = new javax.swing.JTextField();
JtSenha = new javax.swing.JPasswordField();
LbSenha = new javax.swing.JLabel();
LbResultado = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
JtResultado = new javax.swing.JTextArea();
BtConsultar = new javax.swing.JButton();
JtSenha.enable(false);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.GridBagLayout());
LbChave.setText("Chave para consulta da CT-e:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
getContentPane().add(LbChave, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipadx = 390;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
getContentPane().add(JtChave, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipadx = 390;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
getContentPane().add(JtSenha, gridBagConstraints);
LbSenha.setText("Senha do Certificado A1:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
getContentPane().add(LbSenha, gridBagConstraints);
LbResultado.setText("Resultado da consulta:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
getContentPane().add(LbResultado, gridBagConstraints);
JtResultado.setEditable(false);
JtResultado.setColumns(20);
JtResultado.setLineWrap(true);
JtResultado.setRows(5);
JtResultado.setWrapStyleWord(true);
jScrollPane1.setViewportView(JtResultado);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 373;
gridBagConstraints.ipady = 111;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
getContentPane().add(jScrollPane1, gridBagConstraints);
BtConsultar.setText("Consultar CT-e");
BtConsultar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
BtConsultarActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipadx = 291;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
getContentPane().add(BtConsultar, gridBagConstraints);
setSize(new java.awt.Dimension(422, 338));
setLocationRelativeTo(null);
}// </editor-fold>//GEN-END:initComponents
private void BtConsultarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BtConsultarActionPerformed
if("".equals(JtChave.getText())){
JOptionPane.showMessageDialog(rootPane, "Por favor! Preencha a chave da CT-e");
JtChave.requestFocus();
return;
}
PegaUF.setChave(JtChave.getText());
JtSenha.setText("XXXXXXXX");
// if("".equals(new String(JtSenha.getPassword()))){
// JOptionPane.showMessageDialog(rootPane, "Por favor! Preencha a senha do certificado A1");
// JtSenha.requestFocus();
// return;
// }
try
{
JtResultado.setText("");
String url = null;
switch(Integer.parseInt(JtChave.getText().substring(0, 2))){
/*Rondônia*/ case 11: url = "cte.fazenda.gov.br"; break;
/*Acre*/ case 12: url = "cte.fazenda.gov.br"; break;
/*Amazonas*/ case 13: url = "cte.fazenda.gov.br"; break;
/*Roraima*/ case 14: url = "cte.fazenda.gov.br"; break;
/*Pará*/ case 15: url = "cte.fazenda.gov.br"; break;
/*Amapá*/ case 16: url = "cte.fazenda.gov.br"; break;
/*Tocantins*/ case 17: url = "cte.fazenda.gov.br"; break;
/*Maranhão*/ case 21: url = "cte.fazenda.gov.br"; break;
/*Piauí*/ case 22: url = "cte.fazenda.gov.br"; break;
/*Ceará*/ case 23: url = "cte.fazenda.gov.br"; break;
/*Rio Grande do Norte*/ case 24: url = "cte.fazenda.gov.br"; break;
/*Paraíba*/ case 25: url = "cte.fazenda.gov.br"; break;
/*Pernambuco*/ case 26: url = "cte.fazenda.gov.br"; break;
/*Alagoas*/ case 27: url = "cte.fazenda.gov.br"; break;
/*Alagoas*/ case 28: url = "cte.fazenda.gov.br"; break;
/*Bahia*/ case 29: url = "cte.fazenda.gov.br"; break;
/*Minas Gerais*/ case 31: url = "cte.fazenda.gov.br"; break;
/*Espírito Santo*/ case 32: url = "cte.fazenda.gov.br"; break;
/*Rio de Janeiro*/ case 33: url = "cte.fazenda.gov.br"; break;
/*São Paulo*/ case 35: url = "cte.fazenda.gov.br"; break;
/*Paraná*/ case 41: url = "cte.fazenda.gov.br"; break;
/*Santa Catarina*/ case 42: url = "cte.fazenda.gov.br"; break;
/*Rio Grande do Sul*/ case 43: url = "cte.fazenda.gov.br"; break;
/*Mato Grosso do Sul*/ case 50: url = "cte.fazenda.gov.br"; break;
/*Mato Grosso*/ case 51: url = "cte.fazenda.gov.br"; break;
/*Goiás*/ case 52: url = "cte.fazenda.gov.br"; break;
/*Distrito Federal*/ case 53: url = "cte.fazenda.gov.br"; break;
default: url = "cte.fazenda.gov.br"; break;
}
GerarCacerts.GeraArquivo(url, "CTeCacertsProd");
//GerarCacerts.GeraArquivo("cte.fazenda.gov.br", "CTeCacertsProd");
String retorno = CTeConsultaCTeA1.Consulta(JtChave.getText(), new String(JtSenha.getPassword()));
if(!"".equals(retorno)){
JtResultado.setText("Retorno em formato xml: "+retorno);
Document document = documentFactory(retorno);
String Motivo = document.getElementsByTagName("xMotivo").item(0).getFirstChild().getNodeValue();
JtResultado.setText(JtResultado.getText()+"\n\n"+Motivo);
JOptionPane.showMessageDialog(rootPane, Motivo,"Informações!",JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(rootPane, "Não foi possível obter retorno da SEFAZ!","Problemas!",JOptionPane.ERROR_MESSAGE);
}
}catch (IOException | SAXException | ParserConfigurationException e){
JOptionPane.showMessageDialog(rootPane, e,"Erro!",JOptionPane.ERROR_MESSAGE);
}
}//GEN-LAST:event_BtConsultarActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormConsultaCTe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new FormConsultaCTe().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton BtConsultar;
public javax.swing.JTextField JtChave;
private javax.swing.JTextArea JtResultado;
private javax.swing.JPasswordField JtSenha;
private javax.swing.JLabel LbChave;
private javax.swing.JLabel LbResultado;
private javax.swing.JLabel LbSenha;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration//GEN-END:variables
private static Document documentFactory(String xml) throws SAXException,
IOException, ParserConfigurationException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
Document document = factory.newDocumentBuilder().parse(
new ByteArrayInputStream(xml.getBytes()));
return document;
}
}
Talvez o erro seja simples e bobo, porém não tenho conhecimento suficiente sobre o assunto para poder identificar.