Problema: Problemas com applet - Resolvido

2 respostas
Brn_SI

Bom dia, Galera

Estou com uma duvida.

Eu tenho um applett que faz requisição de dados (um mapa) de outro applett, so que quando eu vou executar este applett em um navegador web o java me retorna este erro:

java.security.AccessControlException:access denied (java.net.SocketPermission xxx.xxx.xxx.xxx:80 connect, resolve)

Me pediram para colocar o SocketPermission e ja coloquei mais ainda continua o mesmo erro.

Meu codigo é este:

public String solicitaMapa() {
        SocketPermission p = new SocketPermission("xxx.xxx.xxx.xxx:80", "connect,resolve,accept,listen");
        
                
        String erro = "";
        try {
            
            URLConnection con = new URL(urlServidorMapas).openConnection();
            JOptionPane.showMessageDialog(null, urlServidorMapas);
            erro = "1";
            con.setDoOutput(true);
            con.setRequestProperty("Ticket", ticket);
            con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            erro = "2";
            PrintWriter out = new PrintWriter(con.getOutputStream());  <-- O erro esta exatamente aqui

            erro = "3";
            out.print("CX=" + CX + "&CY=" + CY + "&Z=" + Z + "&H=" + H + "&W=" + W);// +
            erro = "4";
            // parametrosComplementares);
            out.close();
            erro = "5";
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            erro = "6";
            String inputLine = "";
            String resposta = "";
            while ((inputLine = in.readLine()) != null) {
                resposta += inputLine;
            }
            erro = "7";
            in.close();
            inputLine = null;
            dadosRetornados(resposta);
            return resposta;
        } catch (Exception e) {
            System.out.println(e.getCause());
            System.out.println(e + "\nFalha na conexão para retornar o mapa ");
            JOptionPane.showMessageDialog(null, erro + e + "\nFalha na conexão para retornar o mapa\n " + e.getCause(), "Atenção", JOptionPane.ERROR_MESSAGE);
            System.out.println(erro + e + "\nFalha na conexão para retornar o mapa\n " + e.getCause());
            e.printStackTrace();
            return "";
        }
    }

2 Respostas

Alexandre_Saudate

Bom, vamos por partes…

A sandbox dos applets não permite que você faça uma conexão de rede sem que o applet esteja assinado. Contudo, você consegue recuperar um outro applet que esteja no contexto usando getAppletContext().getApplet("nomeDoApplet")

Brn_SI

Eai galera eu resolvi o problema

tive que criar uma applet assinada, apartir dai eu consego fazer “qualquer” conexão.

Vlw pela ajuda

Criado 18 de dezembro de 2009
Ultima resposta 8 de jan. de 2010
Respostas 2
Participantes 2