impressÃo urgente!

Fala galera!

Estou com um problema “estranho”.

Tenho um sisitema que imprime corretamente o recibo na mini-impressora matricial, desde que, eu esteja utilizando diretamente pelo NetBeans.

Ao exportar o arquivo .war e colocar na pasta do Apache Tomcat, o sistema roda normalmente, mas quando chego na tela de imprimir, o browser fica carregando um tempão e não faz nada! Não dá nenhum erro e também não imprime.

Alguém sabe o que pode estar acontecendo?

posta a classe que emite a impressão

LEMBRANDO QUE AO EXECUTAR PELO NETBEANS, IMPRIME NORMALMENTE! MAS AO JOGAR NO APACHE DIRETO (.WAR) O BROWSER FICA CARREGANDO E NÃO IMPRIME NADA.

package bean;
import java.awt.*; 
import java.util.Locale;
import java.text.*;
public class PrintSlip { 
    public static void main() { 
        int linha;
        int tam;
        Frame f = new Frame("Slip"); 
        f.pack(); 
        Toolkit tk = f.getToolkit(); 
        PrintJob pj = tk.getPrintJob(f, "print1", null); 
        
        NumberFormat moeda = NumberFormat.getCurrencyInstance(new Locale("pt","BR"));
        DecimalFormat dFormat = new DecimalFormat("##.##");
        
        if (pj!=null) {
            Graphics g = pj.getGraphics();

            linha = 0;
            g.drawString("CIA DA MUSICA", 0, linha);
            
            linha = linha + 20;
            g.drawString("               O R C A M E N T O", 0, linha);

            linha = linha + 20;
            g.drawString("DATA: " + String.valueOf(bean.Pedido.data).substring(8, 10) + "/" + String.valueOf(bean.Pedido.data).substring(5, 7) + "/" + String.valueOf(bean.Pedido.data).substring(0, 4), 0,linha + 10);
            
            linha = linha + 20;
            g.drawString("Pedido: " + bean.Pedido.getCodPed(), 0, linha);
            
            linha = linha + 20;
            g.drawString("Vendedor: " + bean.Usuario.nome.replace("�", "a").replace("�", "a").replace("�", "a").replace("�", "e").replace("�", "e").replace("�", "i").replace("�", "o").replace("�", "o").replace("�", "c").replace("�", "A").replace("�", "A").replace("�", "A").replace("�", "E").replace("�", "E").replace("�", "I").replace("�", "O").replace("�", "O").replace("�", "C"), 0, linha);
            
            linha = linha + 20;
            g.drawString("Cod", 0, linha);
            g.drawString("Titulo", 60, linha);
            
            linha = linha + 10;
            g.drawString("Preco", 10, linha);
            g.drawString("Desc", 120, linha);
            g.drawString("Qtd", 180, linha);
            g.drawString("Valor", 230,linha);

            linha = linha + 10;
            g.drawString("------------------------------------------------", 0,linha);
            linha = linha + 10;

            try{
                bean.ItensPedido.rsItens.beforeFirst();
                while (bean.ItensPedido.rsItens.next()) {

                    bean.Produto.cod = Long.parseLong(bean.ItensPedido.rsItens.getString("codprod"));
                    bean.Produto.consultaProduto();
                    
                    tam = 0;
                    tam = bean.Produto.getTitulo().length();
                    if (tam > 40) {
                        tam = 40;
                    }
                    
                    g.drawString(String.valueOf(bean.Produto.getCod()), 0, linha);        
                    g.drawString(bean.Produto.getTitulo().substring(0, tam).replace("�", "a").replace("�", "a").replace("�", "a").replace("�", "e").replace("�", "e").replace("�", "i").replace("�", "o").replace("�", "o").replace("�", "c").replace("�", "A").replace("�", "A").replace("�", "A").replace("�", "E").replace("�", "E").replace("�", "I").replace("�", "O").replace("�", "O").replace("�", "C"), 60, linha);
                    g.drawString(String.valueOf(moeda.format(bean.ItensPedido.rsItens.getDouble("vlrprod"))), 10, linha + 10);
                    g.drawString(String.valueOf(dFormat.format(bean.ItensPedido.rsItens.getDouble("vlrdesc")))+"%", 120, linha + 10);
                    g.drawString(String.valueOf(bean.ItensPedido.rsItens.getString("qtde")), 180, linha + 10);
                    g.drawString(String.valueOf(moeda.format(bean.ItensPedido.rsItens.getDouble("vlritem"))), 230,linha + 10);
                    
                    linha = linha + 30;
                }
            }
            catch(Exception e){
                e.printStackTrace();
            }
            g.drawString("------------------------------------------------", 0,linha);
            
            linha = linha + 10;
            
            g.drawString("TOTAL: " + moeda.format(bean.Pedido.getValor()), 0,linha);
            
            linha = linha + 10;
            
            g.drawString("FORMA DE PAGAMENTO", 0,linha);

            linha = linha + 20;

            bean.Pagamento.consultaPgtoPed();
            try{
                bean.Pagamento.rs.beforeFirst();
                while (bean.Pagamento.rs.next()) {
                    g.drawString("------------------------", 0,linha);
                    linha = linha + 10;
                    g.drawString(bean.Pagamento.rs.getString(10).replace("�", "a").replace("�", "a").replace("�", "a").replace("�", "e").replace("�", "e").replace("�", "i").replace("�", "o").replace("�", "o").replace("�", "c").replace("�", "A").replace("�", "A").replace("�", "A").replace("�", "E").replace("�", "E").replace("�", "I").replace("�", "O").replace("�", "O").replace("�", "C"), 10, linha);
                    if (bean.Pagamento.rs.getString(12) != null){
                        g.drawString(bean.Pagamento.rs.getString(12).replace("�", "a").replace("�", "a").replace("�", "a").replace("�", "e").replace("�", "e").replace("�", "i").replace("�", "o").replace("�", "o").replace("�", "c").replace("�", "A").replace("�", "A").replace("�", "A").replace("�", "E").replace("�", "E").replace("�", "I").replace("�", "O").replace("�", "O").replace("�", "C"), 240, linha);
                    }
                    
                    g.drawString("Parcelas: " + String.valueOf(bean.Pagamento.rs.getString("parcelas")) + " x ", 30, linha + 10);
                    g.drawString(String.valueOf(moeda.format(bean.Pagamento.rs.getDouble("valorparcela"))), 160,linha + 10);
                    
                    linha = linha + 20;
                }
            }
            catch(Exception e){
                e.printStackTrace();
            }
            g.drawString("------------------------------------------------", 0,linha);
            g.drawString("TOTAL: " + moeda.format(bean.Pedido.getValor()), 0,linha + 10);
            
            linha = linha + 120;
            g.drawString(" ", 0, linha);

            g.dispose();
            pj.end();
        } 
    f.dispose(); 
    } 
    
}

Eu não encontrei nada errado no código.
Mas se vc diz que no netbeans tá dando certo, talvez seja somente a comfiguração.
Se vc instalou o tomcat que vem junto com o netbeans, eu aconselho desinstalar e reinstalar o tomcat direto como um serviço do windows, desagregado do netbeans.
No netbaenas vc somente importa o tomcat pra ele.

Dá uma olhada nesse tópico:

Como configurar TomCat e fazer host local

Abraços

[quote=berg.pb]Eu não encontrei nada errado no código.
Mas se vc diz que no netbeans tá dando certo, talvez seja somente a comfiguração.
Se vc instalou o tomcat que vem junto com o netbeans, eu aconselho desinstalar e reinstalar o tomcat direto como um serviço do windows, desagregado do netbeans.
No netbaenas vc somente importa o tomcat pra ele.

Dá uma olhada nesse tópico:

Como configurar TomCat e fazer host local

Abraços[/quote]

Com o tomcat dentro do netbeans roda normal. Mas quando jogo o .war dentro da pasta do Apache Tomcat, que instalei separado, ele não imprime. Se uso um tomcat fora do netbeans é que aparece o problema

Já deu uma olhada nos logs do Tomcat para ver se ele não está gerando erro lá?
Vi que você está dando um e.printStackTrace() na veia, você não utiliza nenhuma forma de log (commons-logging) ou algo assim? seria mais interessante imprimir em um arquivo de log do que dar um “System.out”, ainda mais por se tratar de uma aplicação WEB, não misturando os erros da sua aplicação com as do Tomcat.

Ats,
Endrigo Antonini

[quote=antonini]Já deu uma olhada nos logs do Tomcat para ver se ele não está gerando erro lá?
Vi que você está dando um e.printStackTrace() na veia, você não utiliza nenhuma forma de log (commons-logging) ou algo assim? seria mais interessante imprimir em um arquivo de log do que dar um “System.out”, ainda mais por se tratar de uma aplicação WEB, não misturando os erros da sua aplicação com as do Tomcat.

Ats,
Endrigo Antonini[/quote]

Onde ficam os arquivos de log do Tomcat?
Como eu faço para gerar a saída do PrintStackTrace em um arquivo?

fica em uma pasta “logs” dentro do diretório de instalação do seu Tomcat.
lá vão ter varios arquivos de saídas.
uns deles são os “stdout_xxxxxxxx.log” e “stderr_xxxxxxxx.log”.

Esses arquivos são os que nos interessam agora, mas se não tiver erro nestes, dê uma olhada nos outros arquivos para ver se aparece algo.

Em relação a usar uma API de log, dê uma olhada nesse artigo: http://www.guj.com.br/java.artigo.130.1.guj e nessa API http://logging.apache.org/log4j/1.2/index.html