Monday, 14 July 2008

JWS debugging

How to debug applications launched using Java Web Start

Just set the following parameter:

set JAVAWS_VM_ARGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8200

where address specifies the port on which you can connect for remote debugging. Then launch your application using javaws yourfile.jnlp


Outra alternativa:

1.1) Using version 1.5.0 or 1.6.0.

Use the Java[TM] Control Panel to turn

on console and tracing to a file. By default the file will be put in log directory under $deployment.user.home. (for per-platform definition of $deployment.user.home see the Deployment Guide )

Turn on additional tracing messages by adding the following property to the deployment.properties file:
deployment.trace.level=all.


You can also use specific options delimited by "|", all is the same as:
deployment.trace.level=basic|cache|net|temp|security|ext|liveconnect.

The last 2 in the above may only apply to Java[TM] Plug-in and have no effect on Java Web Start apps.

Friday, 11 July 2008

Autenticar aplicação Java

Em algumas situações, é necessário que uma aplicação Java seja autenticada por um certificado digital para que tenha, por exemplo, acesso ao disco local ou mesmo à rede.
Ora, isso é exactamente o que acontece ao executar uma aplicação com o Java Web Start.
Então, para assinar os ficheiros JAR da aplicação (com um certificado self-signed) existe aqui um pequeno guia.

Se for uma aplicação JWS (Java Web Start), no ficheiro JNLP devem introduzir o seguinte para que a aplicação deixe de ter restrições de segurança ("sandbox"):
<security> <all-permissions/> </security>

Java Web Start

Despertei para o Java Web Start (JWS) quando surgiu o desafio de migrar uma das nossas aplicações Java (MobileIPCentrex, consola de operadora) de forma a que fosse integrada no web browser ou invocada remotamente, para evitar instalações de software no cliente e controlo de versões...

Com o JWS é possível executar uma aplicação Java através de um link numa página web. O link aponta para um ficheiro JNPL que descreve a aplicação alojada num Web Server, fazendo com que o JWS descarregue, coloque em cache e execute a aplicação.

A execução da aplicação é independente do web browser (ao contrário das Java Applets), e o utilizador pode eventualmente executar a aplicação off-line, desde que esta esteja ainda em cache.

Por ser uma aplicação "on-line", existem alguns constragimentos de segurança, por exemplo no acesso ao disco local e à rede (aplicações serão executadas num ambiente limitado - sandbox). No entanto, a aplicação pode ser autenticada com um certificado digital e, se o utilizador o aceitar, a aplicação poderá aceder ao disco local e à rede.
Ver este post para assinar aplicações com um certificado self-signed (para testes).