Ошибка Spring: org.springframework.beans.factory.BeanCreationException - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть веб-приложение, которое я экспортирую как EAR и пытаюсь развернуть на сервере приложений Websphere 6.1.

Развертывание идет хорошо. Даже страница индекса прекрасно загружается, это экран входа в систему.

Однако при вводе учетных данных и нажатии Enter следующая страница не загружается и выдается внутренняя ошибка сервера HTTP 500.

Следующая загружаемая страница - это JSP с раскрывающимся списком стран, значения которых выбираются из базы данных через спящий режим.

У меня есть источник данных, созданный в Websphere со всеми деталями, и даже тестовое соединение прошло успешно.

Однако при проверке журналов сервера System.out появляется следующая ошибка:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ds': 
Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: 
Context: uschwasvmdev04Cell01/clusters/URMDUS, name: jdbc/mydbXA: First component in name 
mydbXA not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: 
IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]

В описании NameNotFoundException написано:

«Это исключение выдается, когда компонент имени не может быть разрешен, поскольку он не связан.»

JNDI Lookup в моем services.xml также выглядит нормально:

<jee:jndi-lookup id="ds" jndi-name="jdbc/mydbXA" resource-ref="true" />

Что мне здесь не хватает?

Спасибо за чтение!

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Вы используете resource-ref="true". Вы создали ссылку на ресурс в своем файле web.xml и сопоставили источник данных с приложением ?

Если вы установите его на false, вы можете выполнить глобальный поиск. В противном случае вы должны настроить его.

0 голосов
/ 23 декабря 2011

Забавно, но я сделал наоборот: я создал ссылку на ресурс, но забыл сказать Spring, чтобы он использовался.

На всякий случай, в пространстве имен это сделано, как вы можете видеть выше: resource-ref="true"

Если вы настраиваете бины вручную:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
      <property name="jndiName" value="jdbc/database" /> 
      <property name="resourceRef" value="true" /><!-- It's false by default -->
</bean>
...