Article View: es.comp.lenguajes.java
Article #514Configurar DataSource en JBoss para postgresql
From: alidhaey
Date: Mon, 09 Jul 2007 07:15
Date: Mon, 09 Jul 2007 07:15
104 lines
4785 bytes
4785 bytes
Hola,
Quisiera poder configurar una aplicación (desarrollada con struts,
springs e hibernate) en la que no tuviese que modificar el .WAR de
despliegue en el servidor de producción (JBOSS) para la conexión con
la base de datos (Postgresql).
Hasta ahora, los datos de la configuración estan en el fichero src/
ApplicationContext
<!-- Definición del datasource -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>org.postgresql.Driver</
value></property>
<property name="url"><value>jdbc:postgresql://servidor:5432/
appdb</value></property>
<!-- <property name="url"><value>jdbc:postgresql://localhost:
5432/appdb</value></property>-->
<property name="username"><value>usuario</value></property>
<property name="password"><value>password</value></property>
</bean>
pero esto me obliga a tener que modificar el war posteriormente.
Sé que existe una forma, en la que se configura un DataSource en el
servidor de aplicación y en la aplicación se hace que apunte a ese
dataSource, evitando los inconvenientes pero hasta ahora no doy con la
tecla.
Según tengo entendido, para JBoss se realiza de la siguiente forma:
Modificacion en fichero src/ApplicationContext
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jdbc/appdb" />
</bean>
<!-- Eliminando anterior definición -->
En el fichero WebContent/WEB-INF/web.xml
<resource-ref>
<description>BD AppDB</description>
<res-ref-name>jdbc/appdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
En el fichero WebContect/wEB-INF/jboss-web.xml
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/appdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:comp/env/jdbc/appdb</jndi-name>
</resource-ref>
</jboss-web>
y en la parte del servidor, es necesario crear un fichero con los
datos de conexion, que yo he llamado 'appdb.xml' y he situado en
en el directoio $JBOSS/server/default/deploy/
<datasources>
<local-tx-datasource>
<jndi-name>java:comp/env/jdbc/appdb</jndi-name>
<connection-url>jdbc:postgresql://servidorProcuccion:5432/appdb</
connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>usuario</user-name>
<password>passwd</password>
<!-- sql to call when connection is created. Can be anything,
select 1 is valid for PostgreSQL
<new-connection-sql>select 1</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is
obtained from pool. Can be anything, select 1 is valid for PostgreSQL
<check-valid-connection-sql>select 1</check-valid-connection-
sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml
(optional) -->
<metadata>
<type-mapping>PostgreSQL 7.2</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
A su vez, en el directorio $JBOSS/lib/ he puesto la biblioteca
postgresql-8.1-405.jdbc3.jar
Tal como tengo la configuracion actualmente, me sale una excepcion por
desbordamiento de pila (stackOverflow) cuando el JBOSS intenta hacer
el despliegue de la aplicación y que no quiero poner aqui por ser
excesivamente largo pero que si alguno lo quiero ver, lo posteo
igualmente.
Un saludo y gracias.
Technical Details
Message-ID:
<1183965308.668627.37530@n2g2000hse.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!postnews.google.com!n2g2000hse.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,7f82a743b42a5a47,start X-Google-Attributes: gid1116f3,public,usenet X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!postnews.google.com!n2g2000hse.googlegroups.com!not-for-mail From: alidhaey <alidhaey@gmail.com> Newsgroups: es.comp.lenguajes.java Subject: Configurar DataSource en JBoss para postgresql Date: Mon, 09 Jul 2007 07:15:08 -0000 Organization: http://groups.google.com Lines: 105 Message-ID: <1183965308.668627.37530@n2g2000hse.googlegroups.com> NNTP-Posting-Host: 195.76.86.245 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1183965308 17036 127.0.0.1 (9 Jul 2007 07:15:08 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 9 Jul 2007 07:15:08 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.0; es-ES; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: n2g2000hse.googlegroups.com; posting-host=195.76.86.245; posting-account=KLAivw0AAACY_QshS6K31zUIxS4n2jta