[jboss-user] [EJB 3.0] - Jboss 5 Beta 4 Resource Injection problem in Ejb 3
ragavgomatam
do-not-reply at jboss.com
Thu Feb 14 22:42:24 EST 2008
Hi all,
I have a EJb 3 EAR working fine with Jboss 5 beta 3. Copied the EAR to Beta 4 and immediately having problems in Jdbc Datasource Resource injection in ejb 3.
Ejb 3 Code :-
package com.ejb3.beans;
|
| import static javax.ejb.TransactionAttributeType.REQUIRED;
|
| import javax.ejb.Stateful;
| import javax.ejb.TransactionAttribute;
| import javax.ejb.EJB;
| import javax.annotation.PostConstruct;
| import javax.annotation.Resource;
| import javax.interceptor.ExcludeDefaultInterceptors;
| import javax.sql.DataSource;
| import javax.annotation.PreDestroy;
|
| import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
| import org.jboss.annotation.spring.Spring;
|
| import com.ejb3.domain.IPerson;
| import com.ejb3.interfaces.Calculator;
| import com.ejb3.interfaces.SayHello;
|
| /**
| * @author Ragav
| *
| */
|
| @Stateful
| @TransactionAttribute(REQUIRED)
| @ExcludeDefaultInterceptors
| public class SayHelloBean extends SimpleJdbcDaoSupport implements SayHello {
|
| @Resource(name = "jdbc/TestDs", type = DataSource.class, shareable = true, mappedName = "java:jdbc/OracleDS")
| private DataSource ds;
|
| @EJB(beanName = "CalculatorBean")
| private Calculator calculator;
|
| @Resource(name = "sqlForEjb")
| private String sql;
|
| @Spring(jndiName = "spring-inject", bean = "person")
| private IPerson p;
|
| public String sayHelloWithEjb3DI() {
| return "Testing ejb3 DI & your age is "
| + getSimpleJdbcTemplate().queryForInt(sql);
| }
|
| public double calulate() {
| return calculator.calculate(2, 3);
| }
|
| @PostConstruct
| public void init() {
| setDataSource(ds);
| }
|
| @PreDestroy
| public void callThis() {
| System.out.println("Invoking method: preDestroy()");
| }
|
| public IPerson getPerson() {
| return this.p;
| }
|
| }
|
My Data Source File
<?xml version="1.0" encoding="UTF-8"?>
|
| <!-- ===================================================================== -->
| <!-- -->
| <!-- JBoss Server Configuration -->
| <!-- -->
| <!-- ===================================================================== -->
|
| <!-- $Id: oracle-ds.xml,v 1.6 2004/09/15 14:37:40 loubyansky Exp $ -->
| <!-- ==================================================================== -->
| <!-- Datasource config for Oracle originally from Steven Coy -->
| <!-- ==================================================================== -->
|
|
| <datasources>
| <local-tx-datasource>
| <jndi-name>jdbc/OracleDS</jndi-name>
| <connection-url>jdbc:oracle:thin:@localhost:1521:XE</connection-url>
| <!--
|
| Here are a couple of the possible OCI configurations.
| For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm
|
| <connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
| or
| <connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>
|
| Clearly, its better to have TNS set up properly.
| -->
| <driver-class>oracle.jdbc.OracleDriver</driver-class>
| <user-name>system</user-name>
| <password>admin</password>
| <!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
| <!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
| <!-- Checks the Oracle error codes and messages for fatal errors -->
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
| <!-- sql to call when connection is created
| <new-connection-sql>some arbitrary sql</new-connection-sql>
| -->
|
| <!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered
| <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
| -->
|
| <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
| <metadata>
| <type-mapping>Oracle9i</type-mapping>
| </metadata>
| </local-tx-datasource>
|
| </datasources>
|
Jboss 5 beta 4 deploy Error
22:34:51,156 ERROR [STDERR] java.lang.RuntimeException: Unable to inject jndi dependency: env/jdbc/TestDs into property com.ejb3.beans.SayHelloBean.ds: jdbc not bound
| 22:34:51,156 ERROR [STDERR] at org.jboss.injection.JndiPropertyInjector.lookup(JndiPropertyInjector.java:77)
| 22:34:51,156 ERROR [STDERR] at org.jboss.injection.JndiPropertyInjector.inject(JndiPropertyInjector.java:89)
| 22:34:51,156 ERROR [STDERR] at org.jboss.injection.JndiPropertyInjector.inject(JndiPropertyInjector.java:84)
| 22:34:51,156 ERROR [STDERR] at org.jboss.injection.JndiPropertyInjector.inject(JndiPropertyInjector.java:56)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.pool.AbstractPool.create(AbstractPool.java:100)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.InfinitePool.get(InfinitePool.java:56)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.pool.ThreadlocalPool.create(ThreadlocalPool.java:58)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.pool.ThreadlocalPool.get(ThreadlocalPool.java:113)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:351)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.stateful.StatefulContainer.createSession(StatefulContainer.java:296)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.session.SessionContainer.createSession(SessionContainer.java:457)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.stateful.StatefulLocalProxyFactory.createProxy(StatefulLocalProxyFactory.java:148)
| 22:34:51,156 ERROR [STDERR] at org.jboss.ejb3.JndiProxyFactory.getObjectInstance(JndiProxyFactory.java:55)
| 22:34:51,156 ERROR [STDERR] at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
| 22:34:51,156 ERROR [STDERR] at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1312)
| 22:34:51,156 ERROR [STDERR] at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1329)
| 22:34:51,156 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:765)
| 22:34:51,156 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:629)
| 22:34:51,156 ERROR [STDERR] at javax.naming.InitialContext.lookup(InitialContext.java:351)
| 22:34:51,156 ERROR [STDERR] at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:124)
| 22:34:51,156 ERROR [STDERR] at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:86)
| 22:34:51,156 ERROR [STDERR] at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:122)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4129545#4129545
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4129545
More information about the jboss-user
mailing list