Categorías
Manjaro

Exception in thread Unsupported major.minor version 52.0, otra vez Java.

Este error no es nuevo para mi, por ejemplo Angry IP Scanner dejó de funcionar, pero supuse que era algún problema con alguna actualización. Algo que es muy frecuente en una distribución rolling release.

El colmo fue que ayer intenté instalar el IDE de Arduino y al intentar ejecutar me di cuenta de dos cosas, que el software esta escrito en Java y que como es tradición trae sus problemas.

El error completo es como este:

Picked up JAVA_TOOL_OPTIONS: 
Exception in thread "main" java.lang.UnsupportedClassVersionError: processing/app/Base : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:443)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:65)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)`

El problema es la versión de Java.

El mismo mensaje de error menciona un problema de versión de Java. Así que me fui a buscar información por ese lado. Dí con la página del Wiki de Arch (en Manjaro no encontré algo equivalente) relacionada con Java.

Lo primero es identificar cuantas versiones de Java están instaladas y me llevé una sorpresa.

Al ejecutar el comando archlinux-java status me indicó que tenía instalado en mi equipo no una, ni dos, ¡si no tres versiones de Java!.

Available Java environments:
   java-11-openjdk
   java-7-openjdk/jre (default)
   java-8-openjdk

La verdad es que no tenía idea de este dato, pero en fin.

El problema se soluciona cambiando el default a una versión más reciente. Con la versión 8 funciona, con la versión 11 también. Así que dejé esta última con el siguiente comando.

sudo archlinux-java set java-11-openjdk
Arduino IDE trabajando después de ajustar Java. Unsupported major.minor version 52.0
No que no. ¡Listo y funcionando!

Hecho esto, el IDE de Arduino funciona y también Angry IP Scanner así que se puede dar este problema como solucionado.

Categorías
Errores de software

No se recibió el PKCS7 IDSE IMSS

Me llevó unos tres días de batalla, para dar más o menos una solución al error “No se recibió el PKCS7” de una de las peores implementaciones de Java del gobierno mexicano, el famoso IDSE.

IDSE IMSS
Fig.1 Captura del sitio IDSE (IMSS desde su empresa).

No voy a entrar en detalles porque gran parte de la búsqueda entra en el terreno de lo esotérico y lo místico. Tal parece que se tiene que poner al frente de la computadora agitando ramas de pirul y quemando incienso para que los duendes mayas de los servidores del IMSS tengan piedad de uno y estén contentos con el sacrificio.

Estas recomendaciones no hacen magia, pero creo que es una buena aproximación a la solución. De esta forma he evitado el error PKCS7. Que dicho sea de paso, es un mensaje poco descriptivo y sin ninguna recomendación, vamos que es un mensaje inútil.

Las recomendaciones

Java

Tener instalada la última versión de Java que al momento de escribir estas líneas era la versión 8 Update 31.

Explorer

Lo intenté con Firefox, Chrome, El navegador de la esquina y todo parece indicar que sólo funciona con Internet Explorer, si quieren intentarlo con otros no hay problema, a lo mejor tienen suerte.

JavaPolicy.exe

Un paso que tienen que ejecutar obligatoriamente cada vez que desinstalan/reinstalan Java es ejecutar el programa JavaPolicy.exe, de lo contrario no podrán ni entrar a la página.

Agregar unos sitios a las excepciones de Java

Últimamente Java ha estado en el ojo del huracán por problemas de seguridad, lamentablemente los administradores del sitio IDSE IMSS no se han puesto al día con esas tendencias y han dejado el tema para otro día. Así que no nos queda más remedio que agregar estos sitios a la lista de excepciones de sitios (Panel de control – Java ).

Panel de control de Java
Fig. 2 Panel de control de Java

  • http://idse.imss.gob.mx/imss
  • http://idse.imss.gob.mx/suadap/EntradaIDSEServlet
  • http://idse.imss.gob.mx/suadap/validar.do

Excepciones de sitios de Java
Fig. 3 Lista de excepciones de sitios de Java

Desactivar el proxy

Este punto no lo he confirmado, así que lo voy a recomendar como opcional. Para evitar intermediarios entre el equipo cliente y el servicio de Java del IMSS, desactivé el proxy transparente que tengo configurado en el trabajo (Squid Cache: Version 3.4.11).

Pero eso me llevó a otro punto, se que algunos proveedores de internet como Megacable utilizan un proxy transparente y no veo la forma de desactivarlo, al menos no por parte del cliente.

Sin garantías

disculpa las molestias
Fig. 4 Parece que le dan mantenimiento muy seguido.

Estas recomendaciones se ofrecen sin garantías, principalmente porque el servicio que ofrece el IMSS es muy inestable, no puede uno estar seguro de nada por que a veces funciona y otras no. Súmele usted la enorme cantidad de personas queriendo hacer el trámite, bueno el colmo, en una ocasión me apareció un mensaje de que le estaban dando mantenimiento al servicio ¡Uffff!

Categorías
Errores de software

AppletFIEL.jar Missing required permissions manifest

Un usuario me reportó hoy en la mañana un problema al intentar abrir el sitio de Ventanilla Única

En el espacio donde se teclea el nombre de usuario y contraseña marca un error como este:

Missing required permissions manifest attribute in main jar AppletFIEL.jar

“Missing required permissions manifest attribute in main jar AppletFIEL.jar”

Siendo sincero, no soy fan de Java y mucho menos de sus aplicaciones en el gobierno de México, no son consientes de los temas de seguridad que implica tener estos programas en Java, pero en fin.

Este problema aparece en las nuevas actualizaciones de Java, en el momento de escribir este artículo es la Version 7 Update 51.

Afortunadamente es sencillo solucionarlo, hay que ir al panel de control, buscar El panel de configuración de Java y agregar la dirección https://www.ventanillaunica.gob.mx/ (incluyendo https://) como una Excepción de seguridad presionando el botón Editar lista de sitios….

Lista de excepciones de sitios

Este problema se presenta por la nuevas políticas de seguridad en la nueva versión de Java así que puede ocurrir en cualquier otro sitio, no sólo en la Ventanilla Única, les paso el dato para que lo tomen en cuenta.

También el Servicio de Administración Tributaria

Conforme las personas vayan actualizando a la última versión de Java, este tipo de problemas va a ser más frecuente.

Un amigo en facebook me comenta que también el SAT esta presentando el mismo problema.

Servicios SAT

Así que si desean agregar el sitio:

Como otra excepción no estaría de más.

Comunicado de Oracle sobre el tema.