O Arquivo JNLP
Nesta seção, você vai construir e publicar seu arquivo JNLP, testar sua implementação e executar quaisquer resoluções
de problemas necessárias.
Construa o Arquivo JNLP
Neste ponto, você deve ter exportado com sucesso o recurso para um diretório e ter verificado se os diretórios features
e plugins existem em um local acessível a partir de um servidor da Web. Agora é hora de gravar o arquivo JNLP em seu aplicativo. Um
arquivo JNLP de exemplo é fornecido por completo.
Listagem 4. Arquivo JNLP de Exemplo para o Aplicativo Simples
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"
codebase="http://localhost/~user/jws2" href="simpleapp.jnlp">
<information>
<title>SimpleApp Test</title>
<vendor>Nathan Good</vendor>
<homepage href="http://www.nathanagood.com" />
<description>This is my simple JWS Eclipse
application test.</description>
</information>
<!--request all permissions from the application. This does not change-->
<security>
<all-permissions />
</security>
<!-- The name of the main class to execute. This does not change-->
<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
</application-desc>
<resources>
<jar href="plugins/org.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar"/>
<extension name="Simple App Feature"
href="features/com.nathanagood.examples.simpleApp.feature_1.0.0.jnlp" />
<property name="eclipse.product"
value="com.nathanagood.examples.rcp.simpleApp.plugin.product" />
</resources>
<resources os="Mac">
<j2se version="1.5+" java-vm-args="-XstartOnFirstThread" />
</resources>
<resources os="Windows">
<j2se version="1.4+" />
</resources>
<resources os="Linux">
<j2se version="1.4+" />
</resources>
</jnlp>
|
Nesse arquivo JNLP, o valor do atributo codebase é configurado como a URL base do local onde você publicou
o recurso wrapper. Ele deve corresponder à URL utilizada na guia Java Web Start na janela Recursos
Implementáveis na Figura 17. O atributo href é o nome do arquivo JNLP.
 |
Utilizando localhost
Talvez você tenha observado que, em meus exemplos, estou utilizando localhost como URL. Isso porque testei esse
aplicativo utilizando um servidor da Web local e não implementei de fato meu arquivo para ninguém. O uso do localhost
não funcionará se você pretende implementar este aplicativo (embora ele seja perfeito para testar). Certifique-se de
utilizar um nome do host que possa ser resolvido externamente (por exemplo, myhost.example.com) ou um endereço IP.
|
|
O elemento <information> inclui o título, a descrição e outras informações sobre o
aplicativo sendo distribuído. Os elementos <security> e <application-desc>
precisam ser conforme mostrado na Listagem 4.
Modifique o elemento <resources> para incluir a versão correta do plug-in ativador Equinox para o
elemento <jar>. Talvez você precise examinar o diretório features para
localizar o nome completo correto do JAR do ativador. É provável que, em breve, o nome na Listagem 4 estará obsoleto,
conforme novas versões do arquivo se tornam disponíveis.
Atualize o atributo href do elemento <extension> para incluir a URL
(relativa à URL no atributo codebase) do arquivo JNLP do recurso wrapper. O
arquivo JNLP do recurso wrapper incluirá todos os outros recursos e plug-ins necessários.
Finalmente, atualize o elemento <property> para incluir o ID do produto. Esse ID
será o ID do arquivo de configuração do produto do plug-in (ou seja, SimpleApp.product).
Publique o Arquivo JNLP
Por enquanto, você construiu o arquivo JNLP. Você tem os diretórios features e plugins a partir da exportação do
recurso implementável. O recurso inclui seu plug-in, bem como todas as dependências. Você está pronto para publicar o
arquivo JNLP.
O arquivo JNLP vai para o mesmo diretório que os diretórios features e plugins. Ele deve ser o mesmo diretório que
você utilizou ao exportar o recurso implementável. A Listagem 5 mostra uma listagem de diretórios de exemplo.
Listagem 5. Listagem de Diretórios com Arquivo JNLP
drwxr-xr-x 20 user user 680 Dec 19 09:46 features
drwxr-xr-x 280 user user 9520 Dec 19 09:46 plugins
-rw-r--r-- 1 user user 1222 Dec 19 10:05 simpleapp.jnlp
|
Para facilitar o teste do arquivo, crie uma página HTML simples e chame-a de index.html. Ela deve incluir o código
mostrado na Listagem 6, em que simpleapp.jnlp é atualizado para o nome do seu arquivo JNLP.
Listagem 6. Exemplo de Arquivo HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>My Application</title>
</head>
<body>
<a href="simpleapp.jnlp">My Application</a>
</body>
</html>
|
Salve o arquivo HTML na pasta que estará acessível a partir da URL do código base no arquivo JNLP principal do
aplicativo. Após salvar o arquivo HTML no diretório, a listagem de diretórios deverá ser semelhante à Listagem 7.
Listagem 7. Listagem de Diretórios com Todos os Arquivos
drwxr-xr-x 20 user user 680 Dec 19 09:46 features
-rw-r--r-- 1 user user 288 Dec 19 08:37 index.html
drwxr-xr-x 280 user user 9520 Dec 19 09:46 plugins
-rw-r--r-- 1 user user 1222 Dec 19 10:05 simpleapp.jnlp
|
Testando a Implementação
Neste ponto, você:
- Entende a estrutura básica do arquivo JNLP.
- Configurou seu servidor da Web com o tipo MIME apropriado.
- Tem um produto Eclipse básico construído em um projeto de plug-in.
- Tem um projeto de recurso wrapper que inclui o plug-in.
- Exportou o recurso wrapper para um diretório.
- Criou e salvou um arquivo JNLP para seu aplicativo.
Agora é hora de testar a implementação. Abra um navegador da Web e navegue para a URL que você forneceu para a URL
de código base (por exemplo, http://localhost/~user/jws/). O arquivo index.html que você criou na seção "Publicar o Arquivo
JNLP" deve aparecer. Clique no link. Desde que tudo esteja configurado corretamente, uma tela de abertura para o JWS deve
aparecer (consulte Figura 18). Em seguida, o progresso do download do aplicativo aparece. Dependendo do tamanho final dos
seus recursos e plug-ins, bem como da conexão da rede, esse processo pode levar algum tempo.
Figura 18. A Tela de Abertura do JWS
Quando todas as dependências tiverem sido transferidas por download, o aplicativo será aberto. Minha visualização
simples será semelhante à Figura 19.
Figura 19. O Aplicativo Simples Iniciado a partir do JWS
Resolução de Problemas
Encontrei alguns problemas enquanto construía meu primeiro exemplo de um produto Eclipse sendo implementado através do JWS:
- O arquivo JNLP é exibido no navegador como texto. Se isso acontecer, a causa mais provável é a ausência de uma
associação do tipo MIME para o tipo JNLP na configuração do seu servidor da Web. Certifique-se de que o tipo MIME correto
esteja associado (consulte a seção "Configurar Seu Servidor da Web").
- Não é possível ativar o aplicativo. Se você obtiver esse erro do JWS, clique em Detalhes para obter mais informações
sobre o erro. Se o erro for um
java.io.FileNotFoundException, pode haver uma URL incorreta. Recebi esse erro
quando renomeei meu arquivo JNLP inicial, mas esqueci de atualizar o valor no atributo href do elemento <jnlp>.
- Não é possível carregar um recurso. Semelhante ao erro anterior, essa mensagem fica visível após você clicar em Detalhes. Recebi
esse erro quando tentei testar o aplicativo em um computador diferente. Em minhas URLs para esse exemplo, utilizei localhost como nome do
host. Para resolver esse problema altere a URL para o endereço IP ou nome do host do servidor no qual você está publicando o arquivo JNLP.
- O JWS parece estar iniciado, mas nada fica visível e o JWS é fechado. A causa mais provável desse problema é um ID do
produto incorreto na propriedade
eclipse.product no elemento <resources>. Dê
um clique duplo no valor do ID do produto e certifique-se de que ele corresponda ao ID no arquivo de configuração do produto (SimpleApp.product).
 |
|