Desenvolvi uma aplicação que recupera a chave de acesso de uma nota fiscal eletrônica apartir do banco de dados do Emissor da Secretaria da Fazenda( Banco Apache Derby). Tive que densenvolver essa aplicação pois a empresa onde trabalho ainda não possui seu próprio emissor, e necessitados da chave de acesso da nfe para posteriores operações no nosso ERP.
Bem a aplicação funciona bem, mas quando tento executar o Emissor o mesmo da erro na conexão com o banco, isso porque a minha aplicação acessa o mesmo banco. Recebo uma mensagem dizendo que existe outra instância do Derby inicializado, mas estou dando um “close” na conexão na minha aplicação. O Emissor só funciona quando finalizado minha aplicação.
Alguém teria uma idéia de como contornar esse problema?
Desenvolvi uma aplicação que recupera a chave de acesso de uma nota fiscal eletrônica apartir do banco de dados do Emissor da Secretaria da Fazenda( Banco Apache Derby). Tive que densenvolver essa aplicação pois a empresa onde trabalho ainda não possui seu próprio emissor, e necessitados da chave de acesso da nfe para posteriores operações no nosso ERP.
Bem a aplicação funciona bem, mas quando tento executar o Emissor o mesmo da erro na conexão com o banco, isso porque a minha aplicação acessa o mesmo banco. Recebo uma mensagem dizendo que existe outra instância do Derby inicializado, mas estou dando um “close” na conexão na minha aplicação. O Emissor só funciona quando finalizado minha aplicação.
Alguém teria uma idéia de como contornar esse problema?
Grato.[/quote]
Estou precisando fazer exatamente a mesma coisa que você fez, só que no meu caso preciso pegar os dados do Protocolo (por alguma razão estúpida um dos tokens A3 que tenho - são duas empresas - não funciona no meu ERP).
Poderia me dar alguma dica de como fez esse acesso ao banco de dados do Emissor?
Vou explicar melhor, no meu cliente ele está usando o Emissor do SEFAZ para enviar algumas notas (as quais são importadas, via XML, do meu sistema), eu preciso que meu sistema acesse o Derby do Emissor e recupere algumas informações para atualizar o cadastro.
Tenho que instalar o Derby no meu cliente?
Quero penas colocar o derbyclient.jar no CP do meu sistema.
Preciso apenas conectar e fazer um select, mas pra isso preciso ver toda a estrutura da tabela NOTA_FISCAL, é provável que tudo que preciso esteja nela.
Que estranho, na minha máquina (Emissor de Teste) consigo acessar normalmente.
Agora quando é feito a conexão pelo sistema no cliente (que roda em JWS) ele não está fazendo a conexão, dá a seguinte Exception:
org.apache.derby.client.am.DisconnectException: java.net.ConnectException : Error opening socket to server localhost on port 1527 with message : Connection refused: connect
at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
at org.apache.derby.client.am.Connection.<init>(Unknown Source)
at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at emissor.lib.AcessarEmissor.<init>(AcessarEmissor.java:30)
at emissor.ui.NotasFiscaisUI.iniciarUI(NotasFiscaisUI.java:138)
at emissor.ui.NotasFiscaisUI.formComponentShown(NotasFiscaisUI.java:911)
at emissor.ui.NotasFiscaisUI.access$600(NotasFiscaisUI.java:88)
at emissor.ui.NotasFiscaisUI$11.componentShown(NotasFiscaisUI.java:621)
at java.awt.AWTEventMulticaster.componentShown(Unknown Source)
at java.awt.AWTEventMulticaster.componentShown(Unknown Source)
at java.awt.Component.processComponentEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) Como faço para solucionar esse problema?
Fiz o mesmo processo usando o sistema via JWS no meu computador (instalado do servidor igual acontece no cliente) e fez o acesso normal ao Derby do Emissor da nota fiscal eletrônica, só que no meu caso é o Emissor de Teste.
No meu cliente está o Emissor de Produção, será no banco de dados Derby deles tem senha?
Estou pegando a conexão assim:
public AcessarEmissor() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
if (Global.debug) {
connection = DriverManager.getConnection("jdbc:derby://localhost/C:/database/NFE2_Teste");
} else {
connection = DriverManager.getConnection("jdbc:derby://localhost/C:/database/NFE2"); // no Cliente da erro aqui
}
}