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”
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"?>
Programa JNLP
Sun
Programa - Teste JWS
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…
[quote=hebertaquino]
1º - Para rodar qualquer aplicação com JWS você deverá criar uma private key e assinar todos os jar que sua aplicação utiliza.[/quote]
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:
Tutorial Java Web Start
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 ?
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?
voltando a briga com o web start, depois de finalmente conseguir executar minha aplicação, estou com os seguintes problemas:
só consigo executa-la clicando duas vezes no meu arquivo .jnlp, atraves de um link html (<a href) ele até executa o web start mas minha aplicação não aparece.
dúvida: preciso assinar meu jnlp sempre q for mandar atualização para o cliente? ou seja, já preciso mandar assinado? fiz esse teste e se eu nao assinar um arquivo mais novo da o erro “Unsigned application requesting unrestricted access to system”.
enquanto isso, sigo na luta aqui…
a propósito, tem alguem que já tentou usar o webstart com aplicativos gerados pelo genexus?
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!
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!!