jueves, 18 de febrero de 2010

iReport 3.7 unable to resolve class JRBeanCollectionDataSource

Hace ya años que no diseñaba un reporte en iReport.
El que tuve que hacer hoy requería de un subreporte y perdí mucho tiempo buscando el origen del error mencionado arriba.

Pues resulta que cuando yo hacía los subreportes, podía pasar el Data Source Expression de la siguiente manera:
new JRBeanCollectionDataSource($P{unParametro})

Ahora eso genera un error al compilar la plantilla. Y la solución es muy sencilla, toca poner toda la ruta de la clase, es decir:
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{unParametro})

jueves, 4 de febrero de 2010

Autenticación contra Websphere MQ 6.0

Al trabajar contra Websphere MQ 6.0 desde Java, encontré que hacen una autenticación del usuario que intenta leer las colas. El problema es que siempre se envían las credenciales del usuario que está logueado localmente, por lo que siempre nos va a decir que no somos un usuario válido.

El error que sale es:

javax.jms.JMSSecurityException: MQJMS2013: se ha indicado una autentificación de seguridad no válida para MQQueueManager

Para solucionar esto hay algunas alternativas
  • Agregar el usuario que inicia la aplicación (ej: oas103) en el grupo MQM de la máquina que hospeda el MQ.
  • Utilizar la propiedad del sistema user.name y pasarle el valor SYSTEM. Esta propiedad es leída por las clases en com.ibm.mqjms.jar. Este "truco" funciona porque el si servidor de MQ está corriendo como un servicio standard de Windows, se debe estar ejecutando con el usuario SYSTEM.
  • Insertar en el código Java, en alguna parte, la misma variable de entorno del punto anterior.
    System.setProperty("user.name","SYSTEM")
  • En el servidor MQ en el JMSAdmin.config agregar la línea:
    "SECURITY_AUTHENTICATION=none"
    que deshabilite toda la autenticación.
Más información en http://www.topsecurity.dk/cmview/View?id=1575

martes, 2 de febrero de 2010

Error al iniciar JDeveloper 11g

Después de instalar JDeveloper 11g intenté iniciarlo, pero me salió un error diciendo "Unable to create an instance of the Java Virtual Machine Located at path...".

La solución es editar el archivo jdev.conf de la carpeta en la que se instaló el JDeveloper, ejemplo: C:\oracle\Middleware\jdeveloper\jdev\bin.

En este archivo se debe agregar la siguiente linea:
AddVMOption -Xmx256M
Después de la línea que dice:
AddVMOption  -XX:MaxPermSize=256M
Visto en: http://javainnovations.blogspot.com/2009/10/jdeveloper11g-startup-error.html