A lo que vinimos
Instalare con las siguientes versiones:
- jboss 4.2.2 GA
- Jboss Messaging 1.4.2.GA-SP1
- Jboss ESB 4.5.GA
- Postgresql 8.1.11
Asumo que:
- Se ha bajado los archivos de instalacion y descomprimidos en algun directorio de la maquina
- El directorio en donde quedo instalado Jboss esta en $JBOSS_HOME
- El directorio en donde quedo JBM (Jboss Messaging) es $JBM_HOME
- El directorio en donde quedo JBoss ESB esta en $JBOSS_ESB_HOME
- Postgresql está previamente instalado y se ha creado una base de datos llamada esb fue creada como UTF-8. Un usuario jboss con password jboss ha sido creado y es el dueño de la base de datos esb.
cd $JBM_HOME/util
ant -f release-admin.xml -Dmessaging.config.source=default.ori -Dmessaging.config.name=esb
Con lo anterior creamos una nueva configuración de servidor jboss a partir de la configuración "default" con el nombre de "esb" con lo cual tendremos el directorion $JBOSS_HOME/server/esb.
Es necesario afinar un poco la nueva configuración de JBM por lo cual debe seguirse lo indicado en este link en la parte bajo el titulo "4.1.3. Extra steps to complete your installation", $JBOSS_CONFIG se refiere a $JBOSS_HOME/server/esb
Las instrucciones allí son bastante claras así que no complicare esto explicando lo que ahi dice.
Todabia no suba jboss.
Ahora vamos con el ESB:
Ir al directorio install dentro del directorio donde descomprimio el jboss esb.
cd $JBOSS_ESB_HOME/install
editar archivo deployment.properties
basicamente modifique las lineas que tienen:
org.jboss.esb.server.home=/usr/local/jbossesb = $JBOSS_HOME/server/esb
org.jboss.esb.server.config=esb
En este momento instalar los archivos de esb en Jboss con el comando ant:
ant
Ahora para que el JBossESB use postgresql como base de datos subyacente en vez de hsql debe seguir los pasos dados en esta pagina.
Rapidamente seria:
rm $JBOSS_HOME/server/esb/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml
cp $JBOSS_ESB_HOME/examples/config/postgresql-persistence-service.xml $JBOSS_HOME/server/esb/deploy/jboss-messaging.sar/
Crear archivo postgres-ds.xml con:
<?xml version="1.0" encoding="UTF-8"?>Sobrescribir archivo $JBOSS_HOME/server/deploy/jbossesb.sar/juddi-ds.xml con:
<datasources>
<local-tx-datasource>
<jndi-name>DefaultDS</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/esb</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>jboss</user-name>
<password>gt;jboss</password>
<metadata>
<type-mapping>PostgreSQL 7.2</type-mapping>
</metadata>
<check-valid-connection-sql>select count(*) from jbm_user</check-valid-connection-sql>
</local-tx-datasource>
</datasources>
<?xml version="1.0" encoding="UTF-8"?>Remplazar archivo $JBOSS_HOME/server/deploy/jbossesb.sar/message-store-ds.xml con:
<datasources>
<local-tx-datasource>
<jndi-name>juddiDB</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/esb</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>jboss</user-name>
<password>jboss</password>
<metadata>
<type-mapping>PostgreSQL 7.2</type-mapping>
</metadata>
<check-valid-connectionsql>select count(*) from jbm_user</check-valid-
connectionsql>
</local-tx-datasource>
</datasources>
<?xml version="1.0" encoding="UTF-8"?>Remplazar contenido de $JBOSS_HOME/server/deploy/jbossesb.esg/jbossesb-service.xml con:
<datasources>
<local-tx-datasource>
<jndi-name>JBossESBDS</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/esb</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>jboss</user-name>
<password>jboss</password>
<metadata>
<type-mapping>PostgreSQL 7.2</type-mapping>
</metadata>
<check-valid-connectionsql>select count(*) from jbm_user</check-valid-connectionsql>
</local-tx-datasource>
</datasources>
<?xml version="1.0" encoding="UTF-8"?>En el archivo $JBOSS_HOME/server/deploy/jbossesb.sar/esb.uddi.xml, buscar la linea que tenga "juddi.sqlFiles" y remplazarla por:
<server>
<mbean code="org.jboss.internal.soa.esb.dependencies.DatabaseInitializer"
name="jboss.esb:service=MessageStoreDatabaseInitializer">
<attribute name="Datasource">java:/JBossESBDS</attribute>
<attribute name="ExistsSql">select * from message</attribute>
<attribute name="SqlFiles">
message-store-sql/postgres/create_database.sql
</attribute>
<depends>jboss.jca:service=DataSourceBinding,name=JBossESBDS</depends>
</mbean>
</server>
<entry key="juddi.sqlFiles">juddi-sql/postgresql/create_database.sql,juddi-sql/postgresql/import.sql</entry>
Por ultimo poner el jar jdbc de postgresql en $JBOSS_HOME/server/esb/lib.
Luego para arrancar jboss:
cd $JBOSS_HOME/bin
./run.sh -c esb
Se veran algunos errores que tienen que ver con la creacion de tablas en la base de datos. La segunda vez que se corra jboss se verá mas limpio.
Ojala les sirva para algo
