Как я могу ссылаться на источник данных с JNDI, используя Spring jee Tags
У меня есть источник данных, определенный на моем сервере Geronimo, который называется LocalMysql. Я могу использовать консоль администратора Geronimo для запроса базы данных и возврата данных, поэтому я знаю, что она по крайней мере правильно настроена на сервере приложений.
Моим следующим шагом было создание Spring MVC Project в Eclipse. Не используя ничего, кроме кода, сгенерированного шаблоном, я добавил следующие строки в свой servlet-context.xml.
В объявлении "бобы":
<beans ... xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="...
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee.xsd"
Затем в теле файла добавлено:
<jee:jndi-lookup id="mysqlDatasource" jndi-name="LocalMysql"/>
Что еще мне нужно для подключения?
РЕДАКТИРОВАТЬ С ОБНОВЛЕНИЕМ
В дополнение к тегу, указанному ниже в web.xml, я добавил следующее в geronimo-web.xml:
<dep:dependency>
<dep:groupId>console.dbpool</dep:groupId>
<dep:artifactId>LocalMysql</dep:artifactId>
<dep:version>1.0</dep:version>
<dep:type>car</dep:type>
</dep:dependency>
так же как:
<name:resource-ref>
<name:ref-name>LocalMysql</name:ref-name>
<name:resource-link/>
</name:resource-ref>
Даже с этим дополнением я все еще получаю следующее исключение:
Unable to resolve resource reference 'java:comp/env/LocalMysql'
(Could not find resource ''. Perhaps it has not yet been configured,
or your application does not have a dependency declared for that
resource module?
1 ответ
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/yourresource"
expected-type="javax.sql.DataSource" resource-ref="true" />
И ссылка в вашем web.xml
:
<resource-ref>
<res-ref-name>jdbc/yourresource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>