Pregunta

Tengo un JWS (Java Web Start) del applet distribuido, que utiliza las siguientes bibliotecas / tarros:

red5.jar primavera-beans.jar primavera-context.jar primavera-core.jar apache-mina.jar

bcprov-ext-jdk16-145 (Castillo hinchable)

La razón por la que puse todas esas bibliotecas en el applet es que el red5.jar requiere también tiene los otros. Sin embargo, de alguna manera BouncyCastle no se cargan por el cargador de clases, ni se firmó por Netbeans momento de la elaboración del proyecto WebStart. Cualquier punteros cómo puedo solucionar esto?

Esto es lo que recibo si se incluye el castillo hinchable en mi archivo:

basic: exception: JAR resources in JNLP file are not signed by same certificate.
exception: JAR resources in JNLP file are not signed by same certificate.
JNLPException[category: Launch File Error : Exception: null : LaunchDesc

Y aquí es lo que me pasa cuando aún no la incluimos en el proyecto:

com.sun.deploy.net.FailedDownloadException: Unable to load resource: file:/C:/JNA/dist/lib/bcprov-ext-jdk16-145.jar

No sé cuál de los frascos requiere el frasco castillo hinchable, ya que no indica lo que en mi IDE. Además, incluso si incluyo el Castle.jar hinchables en mi proyecto, Netbeans debe firmar por defecto, pero no es así, a pesar de que firma todos los otros frascos en mi proyecto Web Start. Una revisión rápida con jarsigner, sin embargo, indica que todos los frascos, como el castillo hinchable, están firmados, así que supongo que con seguridad todos ellos están firmados, con la excepción de que el castillo hinchable está firmado con otro certificado.

Y aquí está mi pregunta: ¿debería tratar de firmar todos los archivos de forma manual (por lo que todos ellos tienen el mismo certificado) o es el problema en otro lugar (como BouncyCastle no puede ser firmado en un applet, o algo así)

Cualquier punteros sería muy apreciada

EDIT:

Yo, básicamente, tiene dos enfoques, tanto fracasado hasta ahora:

Enfoque 1. Extracto de árbol de directorios de cada frasco y deshacerse de ellos juntos en un directorio compartido, a continuación, hacer un frasco de este directorio, por lo que todos los archivos contenidos en ella son firmados por el mismo certificado (un frasco, un certificado, a la derecha .. ) Sin embargo, la primavera espera TODAVÍA los archivos de ser organizado como esto: dist \ libs \ bcProv.jar, en lugar de dist \ libs \ allLibs.jar, donde todas las bibliotecas se vierten en el allLibs.jar. El enfoque falla miserablemente porque la primavera no puede encontrar cualquiera de las bibliotecas cuando se despliega a través JWS.

Enfoque 2. Firmar todos los frascos manualmente con el mismo certificado. Después de pasar 10 minutos de firmar manualmente los frascos, este método también falla y tiene la audacia de lanzar un error que bcProv.jar no está firmado con el mismo certificado que los demás.

Me deja perplejo, desconcertado y confundido. ¿Algunas ideas? ¿Es posible en absoluto para tener juntos en un applet JWS esos frascos:

  

red5.jar

     

primavera-beans.jar

     

primavera-context.jar

     

primavera-core.jar

     

apache-mina.jar

     

bcprov-ext-jdk16-145

¿Fue útil?

Solución

Ok, así que aquí está la respuesta:

En primer lugar, como se sugiere Bloodboiler, que están en problemas si sus usos del applet frascos firmado por diferentes certificados. Así que su solución debe ser a firmar a todos con el mismo certificado.

tienen algunas posibilidades:

un es extraer todos los frascos de su proyecto y luego combinarlos en un solo frasco y firmarlo. Esto no funciona con la primavera-contexto y BouncyCastle por alguna razón. Estoy seguro de que si tuviera el valor para jugar con él, hubiera funcionado.

otro forma es, como sugiere M.Joanis, utilizar FatJar, pero también no funcionaba por alguna razón. En cuanto al método descrito anteriormente, no tenía el deseo o la inclinación a pasar demasiado tiempo en él.

la tercera vía , el uno que funcionaba, es simplemente verificar los tarros en los certificados de su directorio dist. Si son diferentes, que, como se sugiere Bloodboiler, está en problemas. La solución es anular la firma de los frascos (extracto, eliminar META-INF) y luego firmar a todos con el mismo certificado (marca frasco de la forma que prefiera, y luego firmarlo la forma que prefiera y asegurarse de que todos los frascos utilice estén firmados por usted ( utilizando jarsigner -verify -cert, etc ...)). Entonces todo este desastre debería funcionar.

Otros consejos

He tenido exactamente el mismo problema, sólo que con diferentes frascos. Si no recuerdo mal, WebStart tiene un error en él que hace que falle menos que todos los frascos se han firmado con el mismo sertificate / con un único certificado.

Una solución consiste en extraer los tarros de bibliotecas e incluir su contenido en su frasco de aplicación, a continuación, sólo que firmar frasco.

También tenía el mismo problema ...

Si alguna vez se está utilizando Eclipse como IDE, tiene un pensamiento para FatJar ... Realmente facilita el embalaje proceso. Publico JWS JAR con más de 40 dependencias JAR incluidos en ellos. Me FatJar ellos, entonces firmar el JAR resultante. Funciona como un encanto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top