geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jarek Gawor" <jga...@gmail.com>
Subject Re: Injecting datasource with the @Resource annotation
Date Wed, 04 Jun 2008 15:29:55 GMT
If JNDI name is "java:comp/env/jdbc/SutkiDB" then @Resource.name
should be "jdbc/SutkiDB".

Jarek

On Wed, Jun 4, 2008 at 10:01 AM, timo.ratilainen <tratilai@yahoo.com> wrote:
>
> Hello
>
> I'm trying to inject a datasource with the @Resource annotation:
>
> @Repository
> public class UserDao {
>
>    @Resource(name = "SutkiDB")
>    private DataSource SutkiDB;
>
>     ...
> }
>
> When I try to deploy the application following trace is shown:
>
> Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
> No bean named 'SutkiDB' is defined
>        at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:388)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:976)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:245)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:184)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:167)
>        at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:422)
>        at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:497)
>        at
> org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:182)
>        at
> org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:104)
>        at
> org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:288)
>
>
> Why? Isn't the datasource object found from the JNDI tree or what is the
> problem?
>
>
>
>
> The datasource is defined in the Global Context JNDI:
>
>   jca:/console.dbpool/SutkiDB/JCAManagedConnectionFactory/SutkiDB
>
> and in the ResourceAdapterModule (what is this by the way?) JNDI:
>
>  console.dbpool/SutkiDB/1.0/rar
>
>
>
> geronimo-web.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
>
>        <environment>
>        <moduleId>
>                <groupId>fi.company.sutki</groupId>
>                <artifactId>SutkiAdminGui</artifactId>
>                <version>1.0</version>
>                <type>car</type>
>        </moduleId>
>        <dependencies>
>                <dependency>
>                <groupId>console.dbpool</groupId>
>                    <artifactId>SutkiDB</artifactId>
>            </dependency>
>        </dependencies>
>                <hidden-classes>
>                        <filter>org.springframework</filter>
>                        <filter>org.apache.commons.</filter>
>                        <filter>org.apache.log4j</filter>
>                </hidden-classes>
>                <inverse-classloading/>
>        </environment>
>
>        <context-root>/SutkiAdminTool</context-root>
>
>        <!-- security settings, if any, goes here -->
>
>        <resource-ref>
>        <ref-name>jdbc/SutkiDB</ref-name>
>        <resource-link>SutkiDB</resource-link>
>    </resource-ref>
>
> </web-app>
>
> and in web.xml
>
>        <resource-ref>
>        <res-ref-name>jdbc/SutkiDB</res-ref-name>
>        <res-type>javax.sql.DataSource</res-type>
>        <res-auth>Container</res-auth>
>        <res-sharing-scope>Shareable</res-sharing-scope>
>        </resource-ref>
>
>
> and spring's applicationContext.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>       xmlns:context="http://www.springframework.org/schema/context"
>       xsi:schemaLocation="http://www.springframework.org/schema/beans
>           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
>           http://www.springframework.org/schema/context
>
> http://www.springframework.org/schema/context/spring-context-2.5.xsd">
>
>     <context:annotation-config/>
>     <context:component-scan base-package="fi.company" />
>
> </beans>
>
>
>
>
> I'm using Apache Geronimo v2.1 and Spring 2.5.2.
> Datasource connection was working fine with good old initialContext lookup:
>
>    DataSource datasource = (DataSource)
> initialContext.lookup("java:comp/env/jdbc/SutkiDB");
>
>
>
>
> Regards
>  Timo Ratilainen
>
>
>
> --
> View this message in context: http://www.nabble.com/Injecting-datasource-with-the-%40Resource-annotation-tp17647494s134p17647494.html
> Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
>
>

Mime
View raw message