🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #514

Configurar DataSource en JBoss para postgresql

#514
From: alidhaey
Date: Mon, 09 Jul 2007 07:15
104 lines
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-mail

Show 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