This content has been marked as final.
Show 1 reply
-
1. Re: Make JNDI datasource visible to Seam
gonorrhea Apr 2, 2009 6:54 PM (in response to oneworld95)Here is an example using Oracle:
foo-ds.xml:
<datasources> <local-tx-datasource> <jndi-name>InternalJavaWebAppTemplateDatasource</jndi-name> <connection-url>jdbc:oracle:thin:@catlmsxd215v.corp.cox.com:1521:DFLDOLTP</connection-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>ijwat</user-name> <password>ijwat</password> </local-tx-datasource> </datasources>
persistence.xml:
<persistence-unit name="InternalJavaWebAppTemplate"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/InternalJavaWebAppTemplateDatasource</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/InternalJavaWebAppTemplateEntityManagerFactory"/> </properties> </persistence-unit>
components.xml:
<persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/InternalJavaWebAppTemplateEntityManagerFactory"/>
This is how we accomplish this with MSSQL (it's very similar with Oracle):
foo-ds.xml:
<datasources> <local-tx-datasource> <jndi-name>boBETSDatasource</jndi-name> <connection-url>jdbc:sqlserver://CORG0DB901:1433;databaseName=boBETS</connection-url> <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class> <user-name>_AppUser_JavaTestAcct</user-name> <password>JavaTestAcct</password> </local-tx-datasource> </datasource>
persistence.xml:
<persistence-unit name="boBETS"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/boBETSDatasource</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/> <!-- <property name="hibernate.hbm2ddl.auto" value="validate"/> --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/boBETSEntityManagerFactory"/> <property name="hibernate.default_catalog" value="boBETS"/> <property name="hibernate.default_schema" value="dbo"/> </properties> </persistence-unit>
components.xml:
<persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/boBETSEntityManagerFactory"/>
This is assuming that you will be injecting SMPC as follows:
@Name("testFoo") public class testFooBean { @In EntityManager entityManager; .... }
Remember that the instance name of the EntityManager injection must match the name attribute for the <persistence:managed-persistence-context> tag