JNDI och JBoss 5

8 views
Skip to first unread message

Per

unread,
Apr 23, 2009, 2:44:13 AM4/23/09
to Sweden Spring User Group
Hej,

Jag försöker sätta upp spring till att använda en datasource i JBoss,
men får det inte att fungera. Datasourcen blir ladda, men spring kan
inte hitta den.

Så här ser min ds.xml ut:

<datasources>
<local-tx-datasource>
<jndi-name>myDatasource</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/my_db</connection-
url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
</local-tx-datasource>
</datasources>

Och i Spring gör jag följande:

<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:/myDatasource</value>
</property>
</bean>

Det står när JBoss:en startar att den har laddat datasourcen med
namnet java:myDatasource

Bound ConnectionManager
'jboss.jca:service=DataSourceBinding,name=myDatasource' to JNDI name
'java:myDatasource'

Men får följande fel ifrån Spring:

Error creating bean with name 'dataSource' defined in class path
resource [conf/common-context.xml]: Invocation of init method failed;
nested exception is javax.naming.NameNotFoundException: JNDI object
with [java:/myDatasource] not found: JNDI implementation returned null

Tacksamma för all hjälp jag kan få.

/Per

Roberto Cosenza

unread,
Apr 23, 2009, 3:03:01 AM4/23/09
to sweden...@googlegroups.com
Hej Per. Är det inte så att du har missat mysql jar:en i classpath?
Det ska nog vara i Jboss "classpath" och inte i din webapp classpath.
Jag har själv ingen erfarenhet av Jboss men om det har en server-wide
lib bibliotek så ska du lägga jaren därinne

/Roberto

Per

unread,
Apr 23, 2009, 4:04:36 AM4/23/09
to Sweden Spring User Group
Tack för ditt svar, men mysql jar:en ligger i JBoss classpath.

Manu

unread,
May 2, 2009, 6:21:32 AM5/2/09
to Sweden Spring User Group
Försök med:

<resource-ref >
<res-ref-name>myDatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

i web.xml

Och sen

<resource-ref>
<res-ref-name>myDatasource</res-ref-name>
<jndi-name>java:/myDatasource</jndi-name>
</resource-ref>


i jboss-web.xml

Per

unread,
May 14, 2009, 3:41:12 PM5/14/09
to Sweden Spring User Group
Har fått det at funkar, la till följande rad i ds.xml filen.

<use-java-context>false</use-java-context>

Och sedan följande i context.xml

<jee:jndi-lookup id="dataSource" jndi-name="myDatasource"/>

<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource" ref="dataSource" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>

Tack för all hjälp.

/Per
Reply all
Reply to author
Forward
0 new messages