[RESOLVIDO] - não consigo passar comando para o ACBr Monoitor

Bom tenho o seguinte código abaixo para comnuicar com o ACBr Monitor, porém não consigo passar comandos pelo “writeToReadFromSocket(“bla, bla, blá”)”, alguém que já tenha utilizado o “ACBr”, poderia me ajudar ??? vlw agradeço a todos… =)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package acbrmonitor;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStreport java.io.DataOutputStrea.io.DataInputStream;
import java.io.DataOutputStreeption;
import java.io.InputStreamReader;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Fred
 */
public class ACBrMonitorClient {

    private Socket acbr;
    private PrintWriter enviaComando = null;
    private BufferedReader recebeComando = null;
    private String finalResposta = "\u0003";


    public ACBrMonitorClient(String host, int port) {
        try {

            InetAddress hostName = InetAddress.getByName(host);
            acbr = new Socket(hostName, port);

            enviaComando = new PrintWriter(acbr.getOutputStream());

            recebeComando = new BufferedReader(new InputStreamReader(acbr.getInputStream()));

            try {
                Thread.sleep(500);
            } catch (InterruptedException ex) {
                Logger.getLogger(ACBrMonitorClient.class.getName()).log(Level.SEVERE, null, ex);
            }

            //loop para limpar o cabeçalho da conexao com o acbr
            short byteLido = -1;
            String leitura = "";
            while (byteLido != 3) {
                byteLido = (short) recebeComando.read();
                if (byteLido != 3) {
                    leitura += (char) byteLido;
                }
            }
            System.out.println("Leitura: " + leitura);


        } catch (UnknownHostException ex) {
            System.out.println("Host Desconhecido: " + ex.getMessage());
        } catch (IOException ex) {
            System.out.println("Erro: " + ex.getMessage());
        }
    }

    public String writeToReadFromSocket(String writeTo) throws Exception {
        String comando = toUpper(writeTo);
        enviaComando.println(comando);
        enviaComando.flush();

        if ("BYE".equals(comando)) {
            enviaComando.close();
            recebeComando.close();
            acbr.close();
            return "FIM";
        }

        //faz a leitura do retorno do acbr
        short b = -1;
        String retorno = "";
        while (b != 3) {
            b = (short) recebeComando.read();
            if (b != 3) {
                retorno += (char) b;
            }
        }

        return retorno;
    }

    private String toUpper(String upper) {
        StringBuffer retorno = new StringBuffer();

        for (char i : upper.toCharArray()) {
            retorno.append(Character.toUpperCase(i));
        }
        return retorno.toString();
    }
}

Bem amigo, primeiramente faça um teste no DOS da tua maquina.

Abra um telnet ou ftp, e conecte no teu ACBR.

Exemplo: ftp open localhost 3436
e depois tente enviar um comando qualquer…
NFe.Ativo();

Se tudo ocorrer certo, vai ter uma resposta no DOS.
Caso contrário ACBr mal configurado.

Ps.: Poste os resultados

[quote=TheKill]Bem amigo, primeiramente faça um teste no DOS da tua maquina.

Abra um telnet ou ftp, e conecte no teu ACBR.

Exemplo: ftp open localhost 3436
e depois tente enviar um comando qualquer…
NFe.Ativo();

Se tudo ocorrer certo, vai ter uma resposta no DOS.
Caso contrário ACBr mal configurado.

Ps.: Poste os resultados[/quote]

tentei pelo telnet e apareceu o seguinte:

ACBrNFeMonitor2 Ver. 0.6.2a - CAPICOM
Conectado em: 03/05/11 10:17:15
Mßquina: 127.0.0.1
Esperando por comandos.
:heart:Nfe.Ativo
.
ERRO: Objeto invßlido: NFE
Permitidos: “NFE”
Nfe.Ativo
.
ERRO: Objeto invßlidoNFEF
Permitidos: “NFE”
:heart:Nfe.Ativo();
.
ERRO: Objeto invßlido: NFE
Permitidos: “NFE”
:heart:Nfe.Ativo();

======================
Pode ate não está totalmente configurando, porém o que eu acho estranho é porque quando eu solicito um comando pelo java, ele nem mesmo retorno o erro…igual pelo telnet…simplesmente não responde…tipo trava entende ???

Digite assim:

NFE.STATUSSERVICO .

Bem a resposta, da sua pergunta está bem na frente dos olhos rsrs…

Falha de comunicação entre seu codigo e o ACBr…
De uma olhada veja se esta fazendo corretamente…

Da uma pesquisada sobre telnet e sockets, não posso postar código porque é empresarial, não tenho direitos sobre códigos

[quote=TheKill]Digite assim:

NFE.STATUSSERVICO .[/quote]

opa …jah tinha ate tentando …segue abaixo:
obs: agora estou sem o certificado…tentei ontem e respondeu numa boa… mas no java não aparece nem a resposta de erro… =´(

ACBrNFeMonitor2 Ver. 0.6.2a - CAPICOM
Conectado em: 03/05/11 10:21:23
Mßquina: 127.0.0.1
Esperando por comandos.
:heart:NFe.StatusServico
.
ERRO: WebService Consulta Status serviþo:

  • Inativo ou Inoperante tente novamente.
  • N·mero de SÚrie do Certificado Digital nÒo especificado !
    :heart:NFE.STATUSSERVICO

.
ERRO: WebService Consulta Status serviþo:

  • Inativo ou Inoperante tente novamente.
  • N·mero de SÚrie do Certificado Digital nÒo especificado !
    :heart::heart:

http://acbr.sourceforge.net/drupal/?q=node/40

[quote=TheKill]Bem a resposta, da sua pergunta está bem na frente dos olhos rsrs…

Falha de comunicação entre seu codigo e o ACBr…
De uma olhada veja se esta fazendo corretamente…

Da uma pesquisada sobre telnet e sockets, não posso postar código porque é empresarial, não tenho direitos sobre códigos[/quote]

Pesquise sobre Sockets, é problema no seu trecho de codigo de comunicação com o ACBr…

tipo estou passando o camando assim: “writeToReadFromSocket(“NFe.StatusServico”);” está certo ???

Sim. mas oque da erro é que voce nao esta
consegunido se conectar. então esta enviando comando para o ‘espaço’

[quote=TheKill]Sim. mas oque da erro é que voce nao esta
consegunido se conectar. então esta enviando comando para o ‘espaço’[/quote]

Estranho…pq crei para testar um botão “conectar” e outro “enviar comando”…
quando clico conectar funciona numa boa: veja a resposta do java

run:
Leitura: ACBrNFeMonitor2 Ver. 0.6.2a - CAPICOM
Conectado em: 03/05/11 10:32:40
Máquina: 127.0.0.1
Esperando por comandos.

Porém qunado clico “enviar comandos” o java trava… cara acho q eh no comando mesmo…não tem condição…já tentei de tudo aqui…tah complicado isso viu…

Mas é algo no seu trecho de codigo…

Sempre usei aqui e nunca tive problemas

[quote=TheKill]Mas é algo no seu trecho de codigo…

Sempre usei aqui e nunca tive problemas[/quote]

poxa olhando para o código acima, você não tem nenhuma ideia do que possa ser ???
pq tipo jah tentei mudar varias coisas e não consigo do mesmo jeito… sempre trava
tem nenhuma luz ai não rss

String comando = toUpper(writeTo); enviaComando.println(comando);

Deixe assim

enviaComando.print(comando + '\r' + '\n' + "." + '\r' + '\n');

[quote=TheKill]

String comando = toUpper(writeTo); enviaComando.println(comando);

Deixe assim

enviaComando.print(comando + '\r' + '\n' + "." + '\r' + '\n');

cara eu te amo auhauhau …vlw mesmo pela ajuda… era isso mesmo …obrigado vlw =)

se minha namorada ve isso, ela te mata!

ahahahaha…
tranquilo ferinha… é soh prestar atenção…

NFE.STATUSSERVICO .

Veja os .