JoptionPane não funciona na rede interna da empresa

Olá Pessoal!

Tenho um sistema que está sendo utilizado em uma empresa, ele exibe uma lista de pedidos. Criei um metodo que lista somente os pedidos pendentes, o usuario do sistema pediu que toda ez que existir uma novo pedido pendente, que o sistema o informasse “chame sua atenção”.
Criei no metodo que lista os pedidos pendentes uma condição em que caso exista pedido pendente o sistema emite um aviso “JoptionPane”. No meu PC funciona perfeitamente bem, mas quando coloco o servidor apache tomcat na empresa, o sistema não exibe o JoptionPane, fica processando sem exibir nada. Abaixo está descrito o metodo que utilizo na classe DAO:

//lista pendencia paginada no sistema
public List getListaPastaPendentePaginada(int pagina, String ordenacao) throws SQLException {

    int limite = 6;

    int offset = (pagina * limite) - limite;

    String sql = sql = "select * from pastas where entregue = false and devolvida = false and naolocalizada = false order by " + ordenacao + " desc LIMIT 6 OFFSET " + offset;

    PreparedStatement ps = null;
    ResultSet rs = null;
    List<Pastas> listaPastasPendente = new ArrayList<Pastas>();
    try {
        ps = conexao.prepareStatement(sql);
        rs = ps.executeQuery();

        while (rs.next()) {
            Pastas pastas = new Pastas();
            pastas.setMovimento(rs.getInt("movimento"));
            pastas.setData(rs.getDate("data"));
            pastas.setUsuario(rs.getString("usuario"));
            pastas.setImovel(rs.getString("imovel"));
            pastas.setObsUsuario(rs.getString("obsusuario"));
            pastas.setObsArquivo(rs.getString("obsarquivo"));
            pastas.setEntregue(rs.getBoolean("entregue"));
            pastas.setDevolvido(rs.getBoolean("devolvida"));
            pastas.setNaoLocalizada(rs.getBoolean("naolocalizada"));
            listaPastasPendente.add(pastas);
            //Abaixo está a condição que exibe o JoptionPane
            if(!pastas.isDevolvido() && !pastas.isEntregue() && !pastas.isNaoLocalizada()){
                JOptionPane.showMessageDialog(null, "Existe uma nova solicitação de pasta!");
            }
        }
        return listaPastasPendente;
    } catch (SQLException ex) {
        Logger.getLogger(PastasDAO.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        //ps.close();
        //rs.close();
    }
    return null;
}

OBS.: VOLTO A REPETIR NO MEU PC FUNCIONA PERFEITO MAS LÁ NA EMPRESA QUE TEM UMA REDE, NÃO FUNCIONA!

Nessa máquina do tomcat da empresa você consegue conectar diretamente no banco de dados usando os mesmos dados de conexão?

JoptionPane (Swing) com Tomcat? Explica isso ai melhor.

Abre seu programa pelo cmd/terminal e vê os erros que apresentam. Se não mostrou o JOptionPane é pq deu erro em alguma coisa, e no erro vc nao colocou nenhuma mensagem visual na tela do cliente.

Você está ciente de que não faz o menor sentido usar a api do swing em uma aplicação que roda no servidor?

Se você está abrindo um JOptionPane, ele será apresentado na máquina onde o Apache estiver rodando e não nas máquinas do cliente.
O cliente nem precisa ter Java pra acessar suas páginas que estão no Apache.
Na sua máquina funciona porque tanto o cliente quanto o servidor são a mesma máquina.

2 curtidas

Depois do que foi exposto, você terá que repensar as coisas.
Servidor (usando Tomcat) e Cliente (usando Swing).

Se pretende que o servidor seja tambem um cliente. ai já será outra historia.

Olá staroski!

Certo, eu não vou conseguir chamar o JoptionPane em outra maquina, mas posso substituir por um alert?
Se sim como fazer isso dentro de um metodo na classe Java, ou dentro de um arquivo empty File. Porque a tabela que lista as pendencias eu não criei em um arquivo .jsp e sim em um empty file .tag.
Caso não seja possivel vou ter de criar um arquivo jsp e chamar um script?

Cara, você está construindo/dando manutenção em que tipo de sistema? Web ou desktop?

Olá darlan_machado

Cosntruindo.
Web.

Certo, então você vai conseguir usar um alert. Porém, precisa verificar se as ferramentas que está utilizando fornecem um meio de arrumar isso.

Certo Darlan!

Vou retirar todo o código do arquivo empty file e irei colocar em um arquivo jsp, e daí irei criar o alert!

Olá Pessoal!

Fiz o seguinte. Como o darlan_machado fez um comentario e através dele fiz uma pagina jsp, descrita abaixo:

<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@taglib tagdir="/WEB-INF/tags" prefix=“tagsJairo” %>

Lista de Pastas Solicitadas Pendentes

<% List listaPendente = (List) request.getAttribute("sessaoPendente"); for (Iterator iterator = listaPendente.iterator(); iterator.hasNext();) { Pastas pastas = (Pastas) iterator.next();%> <%=pastas.getMovimento()%> <%=pastas.getData()%> <%=pastas.getUsuario()%> <%=pastas.getImovel()%> <%=pastas.getObsUsuario()%> <%=pastas.getObsArquivo()%> <%=pastas.isEntregue()%> <%=pastas.isDevolvido()%> <%=pastas.isNaoLocalizada()%> <%if(!pastas.isEntregue() && !pastas.isDevolvido() && !pastas.isNaoLocalizada()){%> script> alert("Existe Uma Nova Solicitação de Pasta!"); script> <%}%> <%} %>

Então o sistema ficou com o alert da forma que eu queria