Estou estudando java web start pelo tutorial do GUJ mesmo, porem venho encontrando algumas dificuldades…
Quero fazer a atualização para o cliente direto do servidor e no tutorial mostra um exemplo com .html o que não acho viável no meu caso… ai minha duvida é: teria como executar minha aplicação direto do arquivo .jnpl ? porque assim eu poderia invocar esse arquivo de um JFrame por exemplo (eu acho)
Mesmo assim segui o tutorial e fiz o arquivo .jnpl e configurei o meu servidor WEB (Tomcat) EXATAMENTE como mostra no tutorial mas ao executar o .html eu caio no condição if ( linha 18 )
abaixo, o index.html e o TutorialJWS.jnpl respectivamente:
[code]
GUJ - Tutorial Java Web Start
Java Web Start
[/code]
…
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.0+"
codebase="http://localhost:8084/tutorialjws"
href="TutorialJWS.jnlp">
<information>
<title>Tutorial Java Web Start</title>
<vendor>GUJ ? Grupo de Usuarios Java</vendor>
<homepage href="null"/>
<description>Tutorial Java Web Start</description>
<description kind="short">Tutorial JWS</description>
<icon href="images/logo.jpg"/>
<offline-allowed/>
</information>
<resources>
<j2se version="1.3+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="TutorialJWS.jar"/>
<property name="myProperty" value="Isso é um exemplo de propriedade"/>
</resources>
<application-desc main-class="tutorialjws.TutorialJWS"/>
</jnlp>
obs: tentei executar o TutorialJWS.jnpl direto por linha de comando mas deu o erro UNABLE TO LAUNCH THE APPLICATION e quando clico em ‘details’ mostra a Exeption:
JNLPException[category: System Configuration : Exception: null : LaunchDesc: null ]
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Acredito que vc não esta entendendo direito o conceito do jws.
1 - O primeiro “startUp” da aplicação deverá obrigatoriamente acessar o servidor web, que hospeda o arquivo .jnlp, afinal de contas é de lá que a aplicação irá ser baixada. isso geralmente é feito via click no browser, que redireciona para o tal .jnlp.
Nada lhe impedede de acessar o link via linha de comando, usando para isso o binário javaws , que deverá estar dentro da pasta bin no jdk.
A grande sacada é que ao acessar o link na primeira vez, a aplicação é baixada conforme a necessidade (existem propriedades para tal definição).Nas execuções subsequentes (que deverão acessar o .jnlp no servidor) será verificado se o cliente possui uma versão mais velha da bilbioteca e aí sim baixar as atualizações.
Vc pode invocar a atualização via um Jframe? sim! nada lhe impede de executar uma url que acesse o .jnlp de dentro de sua aplicação…Mas não vejo lógica nisso, já que para ser uma aplicação webstart, vc DEVE acessar o link .jnlp… logo vc irá fazer duas vezes a mesma coisa.
Quanto ao problema da “linha 18”, tente antes de mais nada acessar uma aplicação webstart na web… pra não sofre tanto.
Lembra que eu falei sobre acessar via linha de comando?Então tente acessar a url http://phoinix.sourceforge.net/testjnlp.jnlp antes de mais nada… se não funcionar via browser, realmente vc precisará instalar o plugin do webstart (que é o que o seu script faz, inclusive seria uma boa pedida disponibilizar o link para instalar este plugin) ai por desencargo teste via linha de comando:
H:>javaws http://phoinix.sourceforge.net/testjnlp.jnlp
Primeiro, muito obrigado pela atenção Cristian… to tentando achar a resposta pra esse problema já faz uma semana.
e foi mesmo o que vc disse, acho que não intendi direito o conceito, procurei muito na internet e até fui a uma livraria, mas não achei nada que pudesse me ajudar…
Então um exemplo só pra ver se entendi:
Eu tenho um sistema em um servidor dentro da empresa, e gostaria que meus clientes da empresa acessassem tal sistema atravez de um ícone na área de trabalho… mas para isso teria atualizações diariamente e foi ai que pensei em Jws… qual seria a maneira mais viável para isso ?
E quanto ao teste na url ou via linha de comando http://phoinix.sourceforge.net/testjnlp.jnl ambos não deram certo, o java chega até inicializar mas logo gera um erro (UNABLE TO LAUNCH THE APPLICATION) e quando clico em ‘details’ mostra a exception:
JNLPException[category: System Configuration : Exception: null : LaunchDesc: null ]
at com.sun.javaws.Main.continueInSecureThread(Main.java:237)
at com.sun.javaws.Main$1.run(Main.java:107)
at java.lang.Thread.run(Thread.java:619)
Mas quando eu tento executar o TutorialJWS.jnpl com um duplo click, abre o firefox com o código .jnpl e com o o erro: O documento XML não está associado a estilos. A estrutura do documento é representada abaixo. o certo não era executar o jws apartir daqui??
Obs: em server.xml que esta na pasta: /home/roberto/.netbeans/6.5/apache-tomcat-6.0.18_base/conf
eu adicionei a linha:
[quote]1 - Então um exemplo só pra ver se entendi:
Eu tenho um sistema em um servidor dentro da empresa, e gostaria que meus clientes da empresa acessassem tal sistema atravez de um ícone na área de trabalho… mas para isso teria atualizações diariamente e foi ai que pensei em Jws… qual seria a maneira mais viável para isso ? [/quote]
R - Webstart como vc já descobriu, há tbm a possibilidade de usar um controle de versão como svn, ou cvs… O cliente ao iniciar (ou finalizar sua aplicação faz uma chamada para o repositorio… simples e fácil, mas seria interessante verificar a performance disso)
Ao acessar a url automaticamente, será adicionado um link na área de trabalho, mas nada lhe impede de vc mesmo adicionar um link para a url tbm.
Recomendo que vc dê uma olhada na documentação do jws no site da Sun, lá vc será devidamente instruído sobre funcionamento, detecção de browsers, propriedades helpers…etc,etc.
Vai na fé: http://java.sun.com/docs/books/tutorial/deployment/webstart/index.html
R - Não tem chaveco… tem que funcionar e acabou… vc verificou se o binário javaws esta onde eu te falei? Se estiver (tente executá-lo tbm) e estiver funcionando talvez vc esteja com algum erro de proxy ou algum tipo de bloqueio na rede …
Tente tbm achar outras aplicações na web, pra testar…
Pesquise no google pelo termo “JNLPException[category: System Configuration : Exception: null : LaunchDesc: null ]” pela breve olhada que eu dei parece que o problema pode estar em prermissões de usuario, ao acessar o jws…
Quando eu tento executar o TutorialJWS.jnpl com um duplo click, abre o firefox com o código .jnpl e com o o erro: O documento XML não está associado a estilos. A estrutura do documento é representada abaixo.
o certo não era executar o jws apartir daqui??
Uma sugestão… nem tente acessar via browser por enquanto… só vai dar mais dor de cabeça.
Primeiro arrume o problema principal que é o JNLPException…
E não se esqueça que é necessário um “plugin” para o browser entender o que é jnlp… se não tiver instalado o plugin… ele não sabe o que fazer com o arquivo.
Sugestão? Eu antes de mais nada tentaria Reinstalar o java… logo todos seu problemas, inclusive o reconhecimento no browser serão resolvidos.