Firmar jar´s de terceros para Java Web Start

Iniciado por AlbertoGLR, 2 Febrero 2015, 17:59 PM

0 Miembros y 1 Visitante están viendo este tema.

AlbertoGLR

Hola a todos,
tengo una pequeña aplicacion java con solo dos formularios, en la que uno de ellos utiliza una jar de terceros. Funciona bien en local pero cuando genero el jnlp y ejecuto desde jws este formulario no llega a abrirse y no muestra ningun error.
Todos los jar estan firmados (los propios desde netbeans y el de terceros desde la linea de comandos).
Llevo un tiempo intentando solucionarlo pero no se que estoy haciendo mal. ¿Alguien puede echarme una mano? (espero haber descrito bien el problema)

Saludos,

Usuario Invitado

¿Has creado los archivos .jnlp para los jars?

Test.jnlp
Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8080/" href="Test.jnlp">
   <information>
       <title>Prueba JNLP</title>
       <vendor>Nombre del vendor</vendor>
       <homepage href="http://localhost:8080/" />
       <description>Descripcion</description>
   </information>
   <security>
       <all-permissions/>
   </security>
   <resources>
       <!-- version de java requerida -->
       <j2se version="1.7+" />
       <!-- indica como se llama el jar -->
       <jar href="TestJnlp.jar" />
   </resources>
   <!-- Clase principal -->
   <application-desc main-class="ruta.clase.Main" />
</jnlp>


¿Qué servidor estás usando? Si estás usando apache copia el jar y su archivo descriptor .jnlp en webapps/ROOT.

Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

AlbertoGLR

Hola Gus,
el servidor que utilizo es tomcat 8.0, y sí que están generados los .jnlp: netbeans me ha generado uno que contiene el primer formulario y una referencia al segundo donde se encuentran definidos el resto de jar's (2 propios y el de terceros)


Usuario Invitado

¿Todos los jars y .jnlp están en el directorio de tomcat?
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

AlbertoGLR

La aplicación esta en el directorio webapps\Gestion y es donde estan los .jnlp y el jar de acceso (principal). Ademas dentro de este se encuentra el directorio \lib que es donde están el resto de jars, tanto propios como el de terceros.

Usuario Invitado

Hmm es raro. Quizás sea problema con la caché. Ejecuta el comando:

javaws -viewer

Se te abrirá el panel de control de Java y elimina historiales. Prueba si ahora ya puedes ejecutarlo.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

AlbertoGLR

También lo había hecho (y he vuelto a hacer), pero nada.
Incluso lo probé con otra pequeña aplicación y un jar diferente (también de terceros y firmado por mí) y lo mismo.
¿Puedo tener algo mal configurado ó estar haciendo mal alguna cosa que a mí me parezca normal?

pd: Gus, gracias por la ayuda

Usuario Invitado

¿Cuando ejecutas el archivo, ves al menos la imagen de JavaWS?



Si no la ves, puede ser señal que la JWS esté corrupta y quizás una re-instalación del JRE (quizás una versión más reciente) lo pueda solucionar.

PD: No te preocupes, las ayudas y favores son prestadas en éste mundo ;)
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

AlbertoGLR

La aplicación sí arranca: muestra la pantalla de acceso, y una vez validado el usuario accede a la segunda pantalla, y es desde esta, que al intentar acceder/abrir un formulario de consulta que contiene la clase ubicada en el jar de terceros (el jar es swingx-all-1.6.4.jar) no hace nada y tampoco da ningún error.
(Como ya adelanté, la misma operación en local funciona)

Usuario Invitado

#9
En primera, te recomendaría mucho que no uses jnlp ni applets, están obsoletos hace mucho tiempo, en realidad, tienen poca utilidad.

La mejor recomendación que puedo darte en éste punto es que debuguees tu aplicación. Buscan en Google como hacer un debug en NetBeans o también puedes usar JUnit para hacer tests de cada método para que te cerciores que todos los métodos están haciendo su trabajo correctamente.

Otra opción es que publiques éste tema en StackOverFlow (en inglés). Allí hay mucha gente que conoce bien Java y te puede dar una mejor respuesta.

Salu2.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein