Java Web Start  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
peresjuliao
JavaGuru
[Avatar]

Membro desde: 24/11/2006 00:17:17
Mensagens: 240
Offline

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.
hebertaquino
JavaChild

Membro desde: 02/06/2005 11:47:12
Mensagens: 141
Offline


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"?>
<jnlp spec="1.0+" codebase="http://localhost:8080/testeWeb" href="TestWebStart.jnlp">
<information>
<title>Programa JNLP</title>
<vendor>Sun</vendor>
<homepage href="Programa.html"/>
<description>Programa - Teste JWS</description>

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

<security>
<all-permissions/>
</security>

<resources>
<j2se version="1.3+" />
<jar href="s.jar" download="eager" main="true" />
</resources>
<application-desc main-class="br.gov.teste.Sistema"/>
</jnlp>


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

peresjuliao
JavaGuru
[Avatar]

Membro desde: 24/11/2006 00:17:17
Mensagens: 240
Offline

olá hebertaquino?

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

Como faço para fazer isso no NetBeans?

Abraços
javer
Virtual Machine Man
[Avatar]

Membro desde: 10/09/2007 12:06:29
Mensagens: 693
Localização: Rio Claro - SP
Offline

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

----------------------------------------------------
Se todo mundo é diferente então todo mundo é igual.
[WWW]
MarceloS
JavaTeenager

Membro desde: 02/06/2008 10:31:11
Mensagens: 185
Offline

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


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
nael_os
Entusiasta Java

Membro desde: 15/09/2008 11:58:42
Mensagens: 16
Offline

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:
<jnlp spec="1.0+" codebase="http://localhost:8080/tutorialjws/" href="http://localhost:8080/tutorialjws/TutorialJWS.jnlp">
<information>
<title>Tutorial Java Web Start</title>
<vendor>GUJ � Grupo de Usuarios Java</vendor>
<homepage href="http://localhost:8080/tutorialjws/index.html"/>
<description>Tutorial Java Web Start</description>
<description kind="short">Tutorial JWS</description>
<icon href="http://localhost:8080/tutorialjws/images/logo.jpg" kind="default"/>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<update check="timeout" policy="always"/>
<resources>
<java href="http://java.sun.com/products/autodl/j2se" version="1.6+"/>
<jar href="http://localhost:8080/tutorialjws/GUIVL.jar" download="eager" main="true"/>
</resources>
<application-desc main-class="Main"/>
</jnlp> ]
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 ?

minerinho
Thread.start()

Membro desde: 25/05/2009 14:26:59
Mensagens: 26
Localização: São Sebastião do Paraíso
Offline

estou com esse mesmo problema...o mesmo codigo de erro acima...se alguem poder ajudar, fico grato...
[Email] [MSN]
minerinho
Thread.start()

Membro desde: 25/05/2009 14:26:59
Mensagens: 26
Localização: São Sebastião do Paraíso
Offline

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...
[Email] [MSN]
Felagund
GUJ Master
[Avatar]

Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline

peresjuliao wrote:olá hebertaquino?

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

Como faço para fazer isso no NetBeans?

Abraços


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

att
Rafael Felix

Rolling With Code
Twitter
[WWW]
minerinho
Thread.start()

Membro desde: 25/05/2009 14:26:59
Mensagens: 26
Localização: São Sebastião do Paraíso
Offline

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
[Email] [MSN]
minerinho
Thread.start()

Membro desde: 25/05/2009 14:26:59
Mensagens: 26
Localização: São Sebastião do Paraíso
Offline

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?

Obrigado.
[Email] [MSN]
bolgari
What is classpath?
[Avatar]

Membro desde: 24/03/2009 16:34:26
Mensagens: 6
Localização: São Paulo - Brasil
Offline

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!
[WWW]
CoringadoBatman
Debugger
[Avatar]

Membro desde: 17/01/2012 07:29:33
Mensagens: 72
Offline

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

01010101010100101010101010101010000010
0100010011110110101000101000100
100100100010010100100000100010
000000000100000010110100
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team