Java Web Start com arquivo externo

1 resposta
J

Pessoal,

Estou fazendo uma aplicação carregar por jnlp, e já está funcionando. Porém, esta aplicação carrega um arquivo externo (arquivo.conf, que necessariamente precisa ficar fora do .jar).

Quando executo pela web (http://localhost:8080/aplicacao/start.jnlp), ele não consegue localizar este arquivo, porém, quando clico 2x no start.jnlp local, ele encontra. Ou seja, a aplicação abre nos 2 casos, só que não abre o arquivo externo quando iniciado via browser. O codebase está setado corretamente, tanto que a aplicação abre, mas na verificação que fiz não localiza o arquivo.

Existe alguma forma de setar este arquivo.conf como fileset deste jnlp? Ou, no caso de esta aplicação sempre funcionar por jnlp, existe alguma forma de capturar o codebase do xml, para buscar este arquivo direto pelo url?

Abraço!

1 Resposta

J

Olá Pessoal. Encontrei um meio de fazer isso usando “argumentos” no JNLP.

<application-desc main-class="teste.Janela">
     <argument>user=goldie</argument>
     <argument>password=goldiepass</argument>
</application-desc>

O método usado para ler o arquivo externo foi:

public static String getDataFromWebFile(String link) throws UnsupportedEncodingException, MalformedURLException, IOException, Exception {
        URL u = new URL(link);
        URLConnection uc = u.openConnection();
        if (uc == null) {
            throw new Exception("Não encontrou o arquivo!");
        }
        
        InputStream is = uc.getInputStream();
        if (is == null){
            throw new Exception("Não encontrou dados no arquivo!");
        }
        
        StringBuffer sb = new StringBuffer();
        Reader r = new InputStreamReader(is, "UTF-8");
        char cb[] = new char [2048];
        
        int amtRead = r.read(cb);
        while (amtRead > 0) {
            sb.append(cb, 0, amtRead);
            amtRead = r.read(cb);
        }
        String pageSource = sb.toString();
        return pageSource;
    }

Forte abraço!

Criado 7 de dezembro de 2007
Ultima resposta 14 de dez. de 2007
Respostas 1
Participantes 1