openxava / documentación / Configuración para Informix

Configurar tu aplicación OpenXava para ir contra Informix es muy simple, básicamente has de instalar tu controlador JDBC para Informix y definir correctamente la fuente de datos. No necesitas tocar nada de código de tu aplicación.
Asumimos que ya tienes Informix instalado y funcionando.

Descargar el controlador JDBC para Informix

Descarga el controlador para Informix desde aquí: https://www.ibm.com/products/informix/developer-tools

En esta página escoge la opción Informix JDBC. Te pedira que te registres, después de lo cual podrás descargar el controlador. Descargarás un archivo como este: ibm.jdbc.4.50.JC1.ALL.tar (los números de versión pueden variar). Descomprímelo para encontrar dentro un archivo llamado setup.jar, que has de ejecutar de esta manera:
java -jar setup.jar
Esto lanzará un asistente de instalación clásico. Síguelo, te copiara algunos archivos en una carpeta de tu elección. Ve a esa carpeta, donde dentro de una carpeta lib encontrarás un archivo llamado ifxjdbc.jar. Este último archivo, el .jar, es el controlador JDBC que vamos a usar.

Crear una variable de classpath en Eclipse

Para poder conectar a Informix desde Eclipse vamos a declarar una variable de classpath que apunte al controlador JDBC de Informix, así lo podrás usar en cualquier proyecto que lo necesites con facilidad. Para ello, en Eclipse ve a Window > Preferences > Java > Build Path > Classpath Variables donde puedes añadir la nueva variable:
Puedes llamar a la variable INFORMIX_DRIVER o CONTROLADOR_INFORMIX en lugar de DB_DRIVER si lo prefieres. Path sería la ruta del controlador JDBC, en nuestro caso la ruta del ifxjdbc.jar que acabamos de descargar.

Añadir la variable DB_DRIVER al proyecto Eclipse

En el proyecto en que vayas a usar Informix has de añadir la variable que acabas de declarar. Pulsa con el botón derecho del ratón en tu proyecto y selecciona Properties > Java Build Path > Libraries:
Con esto tenemos el controlador disponible en el entorno de desarrollo.

Añadir el controlador JDBC al Tomcat de producción

Añadir el controlador en producción es mucho más fácil. Copia ifxjdbc.jar a la carpeta lib de tu Tomcat. Nada más.

Ajustar la definición de la base de datos

Para desarrollo edita web/META-INF/context.xml de tu proyecto Eclipse y para producción edita conf/context.xml de tu Tomcat, para ajustar la fuente de datos para que apunte a Informix, algo como esto:
<Resource name="jdbc/MiAplicacionDS" auth="Container"
	type="javax.sql.DataSource"
	maxTotal="100" maxIdle="20" maxWaitMillis="10000"
	username="root" password="ao49fmsk"
	driverClassName="com.informix.jdbc.IfxDriver"
	url="jdbc:informix-sqli://localhost:1533/miaplicaciondb:INFORMIXSERVER=miservidor"/>
Las diferencias están en el driverClassName y la url. En la parte final de la url (antes de INFORMIXSERVER) se encuentra el nombre de tu base de datos, miaplicaciondb en este ejemplo. Obviamente, en lugar de localhost deberías poner la dirección del servidor donde está el Informix, y también poner los valores correctos para username y password.

Actualizar persistence.xml

No necesitas tocar la unidad de persistencia default de persistence.xml (en persistence/META-INF), a no ser que uses la propiedad hibernate.dialect en cuyo caso lo más fácil es quitar la propiedad hibernate.dialect. Sin embargo, sí que has de modificar la unidad de persistencia junit para que apunte a Informix:
<!-- JUnit Informix -->
<persistence-unit name="junit">
	<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
	<class>org.openxava.web.editors.DiscussionComment</class>
	<properties>
		<property name="hibernate.connection.driver_class" value="com.informix.jdbc.IfxDriver"/>
		<property name="hibernate.connection.username" value="root"/>
		<property name="hibernate.connection.password" value="ao49fmsk"/>		
		<property name="hibernate.connection.url" 
value="jdbc:informix-sqli://localhost:1533/miaplicaciondb:INFORMIXSERVER=miservidor"/> </properties> </persistence-unit>
Adapta username, password y url a la configuración de tu Informix.