Avançar para a área de conteúdo

Bem-vindo ao developerWorks. Se você não possui um ID IBM e senha, Registre-se aqui.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Esse perfil inclui o primeiro nome, o sobrenome e o nome de exibição identificado quando você se registrou no developerWorks. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

Implementando um Aplicativo Baseado em Eclipse com Java Web Start

Permitindo uma Fácil Implementação para um Produto Customizado

Nathan A. Good, Senior Information Engineer, Freelance Developer
Nathan A. Good mora na área Twin Cities em Minnesota. Profissionalmente, ele realiza desenvolvimento de software, arquitetura de software e administração de sistemas. Quando ele não está desenvolvendo software, ele gosta de montar PCs e servidores, ler sobre e trabalhar com novas tecnologias e tentar convencer seus amigos de começarem a usar software livre. Ele escreveu e coescreveu muitos livros e artigos, incluindo Professional Red Hat Enterprise Linux 3, Regular Expression Recipes: A Problem-Solution Approach, Regular Expression Recipes for Windows Developers: A Problem-Solution Approach, PHP 5 Recipes: A Problem-Solution Approach e Foundations of PEAR: Rapid PHP Development.

Resumo:  Saiba como construir um pequeno aplicativo de estrutura baseado na Estrutura do Eclipse e implementá-lo através de Java™ Web Start (JWS) — uma tecnologia que você pode utilizar para implementar aplicativos Java facilmente através de sites padrão da Internet, permitindo fácil upgrade e distribuição.

Data:  03/Fev/2009
Nível:  Intermediário

Comentários:  

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
The JWS splash screen

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
The simple application started from 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).

7 de 11 | Anterior | Próximo

Comentários



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=387176
TutorialTitle=Implementando um Aplicativo Baseado em Eclipse com Java Web Start
publish-date=02032009
author1-email=mail@nathanagood.com
author1-email-cc=cappel@us.ibm.com

Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).