Aplicativo de início da Web do Java assinado com o Glassfish 4.1 e o Java7

Eu estou tentando executar um aplicativo web start com GlassFish 4.1, JDK 1.7 atualização 51 localmente e eu encontrei a mensagem “Application Blocked by Security Settings”.

Aqui está o que eu tentei fazer funcionar:
1. Adicionado http://hostname.localdomain.com:8080 à Lista de sites de exceção no painel de controle Java. Também tentei http://hostname.localdomain.com:8080/___JWSappclient/ e http://hostname.localdomain.com:8080/clientName.jnlp

2. Exportou a chave s1as do keystore.jks da Glassfish e a importou para os cacerts do JRE: $ keytool -exportcert -keystore keystore.jks -alias s1as -file server.csr $ keytool -importcert -keystore jre/lib/security/cacerts -alias s1as -file server.csr

Eu podia ver os flasks assinados com a chave do s1as, mas o javaws ainda reclama. O JNLP é gerado pelo Glassfish automaticamente usando as configurações do nosso sun-application-client.xml

Aprecie qualquer ajuda sobre como contornar este erro. Eu sei que isso funciona bem se eu usar o JRE7 update 21 no lado do cliente, mas eu gostaria de tentar com o Java 8 mais tarde, então não posso me ater ao Java 7. Se isso importa, estou usando o Ubuntu.

Eu repliquei seu problema e tenho uma solução alternativa.

Parece que o problema está relacionado ao arquivo jnlp glassfish 4.1 gerado automaticamente e o novo jdk de segurança java 1.7 u 25 ou posterior.

Se você instalar o java 1.7.0_21 ou anterior, o seu aplicativo Java Web Start iniciará usando javaws na distribuição anterior.

Eu simplifiquei este problema usando o netbeans 8.0.2, java 1.8_31 e GF 4.1. Eu criei um “Enterprise Application Client” Java EE sem alterações de código. Implante-o e você não poderá executá-lo no console glassfish nem em qualquer javaws de 7.1 u25 ou posterior. No entanto, se você usar o javaws 7.1 u21 ou anterior a partir da linha de comando, ele será iniciado. Curiosamente, o aplicativo está sendo executado em um ambiente java 1.8 u31.

Deve ser um bug no glassfish.