powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Интеграция spring3 hibernate4. Проблема с datasource
6 сообщений из 6, страница 1 из 1
Интеграция spring3 hibernate4. Проблема с datasource
    #37805007
tepka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Утро коллеги,
Уж простите, но я сразу к делу, ибо я с этими xml'ми уже сутки бьюсь :)

Есть сервер приложения tomcat6. У него в файле context.xml вписаны ресурс.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Resource name="jdbc/DarkWeb" 
	auth="Container" 
	type="javax.sql.DataSource" 
	factory="org.apache.commons.dbcp.BasicDataSourceFactory" 
	username="root" 
	password="ххххххх" 
	validationQuery="SELECT 1" 
	driverClassName="com.mysql.jdbc.Driver" 
	url="jdbc:mysql://ххх.ххх.ххх.ххх:3306/DarkWeb?autoReconnectForPools=true" 
	maxActive="100" 
	maxIdle="5" 
	removeAbandoned="true" 
	removeAbandonedTimeout="30" 
	logAbandoned="true" />



Сей ресурс вроде работает, проверенно путем теста простой jsp'ихой. По крайне мере jsp'и напрямую селекты из ресурса делает(jsp запускается напрямую минуя dao и сервси-левел)


При попытки открыть транзакцию из бина при следующей конфигурации хибирнейта\спринга
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
...
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>java:comp/env/jdbc/DarkWeb</value>
        </property>
    </bean> 

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation">
            <value>/WEB-INF/db/hibernate.cfg.xml</value>
        </property>        
    </bean>

    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
...



Вываливаюсь в эксепшен:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.UnsupportedOperationException: Not supported by BasicDataSource
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
....
java.lang.UnsupportedOperationException: Not supported by BasicDataSource
	org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1062)
	org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
	org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:276)
	org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
	org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
	org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
	org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
	org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1263)
	org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:399)
	org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
	org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	$Proxy26.userList(Unknown Source)
	com.seostella.spring.controller.UserController.listUsers(UserController.java:33)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)



Если чутка подправить конфигурацию dataSource вот так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
...
     <!-- Непосредственно бин dataSource --> 
     <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource"
          p:driverClassName="com.mysql.jdbc.Driver"
          p:url="jdbc:mysql://78.46.147.206:3306/DarkWeb"
          p:username="root"
          p:password="TepKyh69!"
    />      

    <!-- Настройки фабрики сессий Хибернейта -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
    </bean>
...


То всё работает, но я естественно так не хочу :) Хочу чтобы пулами управлял tomcat, а не spring напрямую лез в базу
...
Рейтинг: 0 / 0
Интеграция spring3 hibernate4. Проблема с datasource
    #37805019
tepka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кхм, поменял версию хибирнейта с 4.1 на 3.6.10.Final все заработало.
Если не поборю останусь на 3ем хибирнейте.

Для истории:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...
<bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- <property name="dataSource" ref="dataSource"/> -->
        <property name="configLocation">
            <value>/WEB-INF/db/hibernate.cfg.xml</value>
        </property>        
    </bean>

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


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="connection.datasource">java:comp/env/jdbc/DarkWeb</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <mapping class="com.seostella.spring.domain.user.User" />
        <mapping class="com.seostella.spring.domain.Country" />
    </session-factory>
</hibernate-configuration>
...
Рейтинг: 0 / 0
Интеграция spring3 hibernate4. Проблема с datasource
    #37805671
Joe R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tepka,

У меня было что-то похожее. Работал хибер 4 пока не решил соединить его со спрингом. Не получилось, хотя с 3.6 работает прекрасно. Оказывается там дело в спринге, у него ещё вроде как до конца не отлажена интеграция с 4-й версией.
...
Рейтинг: 0 / 0
Интеграция spring3 hibernate4. Проблема с datasource
    #37805699
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hibernate у вас почему-то пытается вызвать getConnection указывая имя и пароль. Откуда он их берет? А Tomcat DataSource так не умеет. Только логин и пароль из context.xml.

И, да. Помимо этого Spring вроде ещё не достаточно хорошо поддерживает 4й хибер. но это к вашей ошибке вроде не относится.
...
Рейтинг: 0 / 0
Интеграция spring3 hibernate4. Проблема с datasource
    #37805750
tepka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczИ, да. Помимо этого Spring вроде ещё не достаточно хорошо поддерживает 4й хибер. но это к вашей ошибке вроде не относится.

эх, значит realese note'ы врут спринговые. А у них ведь написано
official support for Hibernate 4.0.0/4.0.1 as well as Hibernate 4.1
...
Рейтинг: 0 / 0
Интеграция spring3 hibernate4. Проблема с datasource
    #37805759
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tepkaэх, значит realese note'ы врут спринговые. А у них ведь написано
official support for Hibernate 4.0.0/4.0.1 as well as Hibernate 4.1
1) Саппорт есть, но уже не первый раз читаю что где-то не клеиться.
2) К вашей проблеме Spring интеграция отношения, вроде, не имеет.
3) Подключите исходники хибера и посмотрите в DatasourceConnectionProviderImpl, почему он пытается юзера использовать и откуда его берет.
4) В самом Hibernate4 вроде смысла особого нет. Там никаких серьезных новшеств не наблюдается.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Интеграция spring3 hibernate4. Проблема с datasource
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]