Проблема с ссылками на конфигурационные файлы Spring 3.0 / Hibernate - PullRequest
0 голосов
/ 07 ноября 2011

Все,

У меня изначально была такая установка, и все работало как положено.

WEB-INF
|--spring-servlet.xml
|--classes
   |--hibernate-cfg.xml

spring-servlet.xml имел

<context:component-scan base-package="foo" />
<tx:annotation-driven/>
<bean id="dataSource" ...
<bean id="sessionFactory" ...
<bean id="transactionManager" ...
<bean ...

hibernate-cfg.xml имел

<hibernate-configuration>
  <session-factory>
    <mapping ...

Я хотел добавить Spring Security в смесь для обработки аутентификации пользователей.Чтобы это сработало, мне пришлось кое-что сделать.Моя новая установка выглядит следующим образом:

WEB-INF
|--spring-servlet.xml
|--classes
   |--datasource-cfg.xml
   |--hibernate-cfg.xml

spring-servlet.xml имеет

<context:component-scan base-package="foo" />
<bean ...

datasource-cfg.xml имеет

<tx:annotation-driven/>
<bean id="dataSource" ...
<bean id="sessionFactory" ...
<bean id="transactionManager" ...

hibernate-cfg.xml имеет

<hibernate-configuration>
  <session-factory>
    <mapping ...

Элемент аутентификации теперь работает, но ранее работающие части больше не работают.

Теперь я получаю следующее сообщение:

No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:687)

Как мне заставить мое приложение работать с Spring Security и иметь все источники данных / гибернацию в одном месте?

1 Ответ

1 голос
/ 07 ноября 2011

Этого в web.xml должно быть достаточно.

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    /WEB-INF/spring-security.xml
    classpath:datasource-cfg.xml
  </param-value>
</context-param>

<listener>
  <listener-class>
    org.springframework.web.context.ContextLoaderListener
  </listener-class>
</listener>

Однако я бы не совмещал и не совмещал, куда идут файлы конфигурации;ИМО, лучше всего хранить их в одном месте, вероятно, на пути к классам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...