GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Java Web Start


#1

As estapas de criação e implantação de um aplicativo Java Web Start

1 - Crie um arquivo JAR executável para seu aplicativo
2 - Crie um arquivo .jnlp
3 - Insira os arquivos JAR e .jnlp em seu servidor Web
4 - Adicione um novo tipo mime a seu servidor Web
5 - Crie uma página Web com um link que conduza a seu arquivo .jnlp

A estrutura dos meus arquivos são as seguintes:

C:\MyProject\classes

MyApp.jnlp - MyJWSApp.html - MyApp.jar

Quando abro o meu MyJWSApp.html aparece o link "Launch My Aplication", ai quando clico no link aparece a opção de abrir o arquivo MyApp.jnlp, eu abro com o Java Web Start e aparece o erro "Unable to launch the aplication"

Obs.: Não fiz o 3º e o 4º passo.

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="0.2 1.0"
   codebase="file:///C:/MyProject/classes"
   href="MyApp.jnlp">
<resources>
   <j2se version="1.3+"/>
   <jar href="MyApp.jar"/>
</resources>
<aplication-desc main-class="HelloWebStart"/>
</jnlp>

#2

1º - Para rodar qualquer aplicação com JWS você deverá criar uma private key e assinar todos os jar que sua aplicação utiliza.

Para assinar o jar faça o seguinte comando pelo DOS.
1.1- Você precisa criar a chave pública que servirá de apoio para criação do projeto associado:
keytool -genkey -dname "cn=Teste, ou=Tecnologia o=B, l=F, s=C" -alias key -keystore c:\temp\mykeystore -storepass 123456 -validity 450
1.2- Após a criação da chave pública assine o jar através do seguinte comando e repetir essa chamada para todos os jars da aplicação, modificando apenas os nomes dos jar's.
jarsigner -keystore c:\temp\mykeystore -storepass 123456 -signedjar as.jar s.jar key

2 º - Nunca coloque o caminho da sua aplicação do SO corrente, pois se alguém utiliza remotamente provavelmente não conseguirá ter acesso.
3º - Você terá que colocar dentro do Manifest qual é a classe Main e qual é o pacote corretamente que está usando.

4º - Agora no arquivo jnlp você deverá realizar as chamadas corretamente.

<?xml version="1.0" encoding="UTF-8"?>



Sun

Programa - Teste JWS

<shortcut online="true">
    <desktop/>
    <menu submenu="Teste JWS"/>
</shortcut>
<offline-allowed/>








Se você quiser automatizar suas rotinas de geração do web start o proprio NetBeans utiliza uma ferramenta para isso ou você poderá constriuir via Ant Task...

Espero ter ajudado nas explicações

:smiley:


#3

olá hebertaquino?

Então você disse que o proprio NetBeans faz isso?

Como faço para fazer isso no NetBeans?

Abraços


#4

Pra começar, comece entendendo como criar a sua chave nesse tutorial


#5

Falso. Isso só é válido se você precisa de privilégios elevados na execução, como leitura/escrita de arquivos acessando diretamente o HD ao invés de utilizar a API do JWS que existe pra isso.

Qual o erro que é mostrado? Só um "Unable to launch the application" não ajuda muito :roll:


#6

Fiz o que foi descrito acima no passo-a-passo e esta me dando o seguinte erro:

Unsigned resource> http://localhost:8080/tutorialjws/GUIVL.jar

JNLPException[category: Security Error : Exception: null : LaunchDesc:



GUJ � Grupo de Usuarios Java

Tutorial Java Web Start
Tutorial JWS












]
at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


Só que o GUIVL.jar é o meu jar principal.
Mesmo assim, tentei também assinar ele com o comando de assinatura descrito acima e nada.
A minha keystrore está em um diretório diferente do projeto, e ao gerar o jar principal ela ficou de fora, algum problema nisto ?


#7

estou com esse mesmo problema...o mesmo codigo de erro acima...se alguem poder ajudar, fico grato...


#8

para resolver esse problema eu tive que assinar todos meus .jar, conforme o link

http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/

e segue o que eu fiz...só adapta do jeito que preferir...

keytool -genkey -dname "cn=TopSys, ou=Desenvolvimento, o=Elder, c=BR" -alias key -keystore key -storepass 123456 -validity 356 (quando pedir confirmação, apenas pressione o enter - RETURN)

keytool -export -keystore key -alias key -file [local específico se quiser]keycert.x509

jarsigner.exe -keystore key -storepass 123456 -signedjar T:\Sistemas\TopSys\Classes\gxclasspNovo.jar T:\Sistemas\TopSys\Classes\gxclassp.jar key

agora esta dando uma mensagem de aviso dizendo q nao foi possivel verificar minhas assinaturas...alguem tem ideia de como resolver? será q tem alguma coisa errada acima?

valeu...


#9

Basta configurar a aplicação como Web Start e mandar executar, assim o netbeans assina todos os jars automaticamente.


#10

alguém sabe se o JWS gera algum arquiv de log pois minha aplicação nao abre, nao acontece nada...não sei onde começar a procurar o problema...

obrigado


#11

voltando a briga com o web start, depois de finalmente conseguir executar minha aplicação, estou com os seguintes problemas:

enquanto isso, sigo na luta aqui...
a propósito, tem alguem que já tentou usar o webstart com aplicativos gerados pelo genexus?

Obrigado.


#12

Hei mineirinho,
eu estava com o mesmo problema
olhando no log do Zone Alarm vi que o firewall estava bloqueando o javaws. Daí foi só liberar a execução e pronto, funcionou.
abraço!


#13

Alguém conseguiu resolver?

Tenho um caso parecido.

Ja criei a .jar e a jnlp.

Quando clico no link ele sempre pede para fazer o download do arquivo jnlp.
Beleza, faço o download e executo. Ele até abre minha aplicação mas não executa nenhum comando!!

HELP


Java Web Start
#14