Сорри, с этой проблемой разобрался, там у меня в baseDao проблемы были дальше интересней - если быстро клацать по кнопкам в браузере (серия кликов по добавки одного товара в корзину и сразу серия по добавке другого и так несколько раз) DWR умирает вот пример лога:
| Код | 2008-08-26 18:56:32,628 INFO [org.directwebremoting.impl.DefaultRemoter] - Exec: Cart.addItemToCart() Hibernate: /* load com.shop.persistence.pojo.Item */ select item0_.id as id0_1_, item0_.name as name0_1_, item0_.description as descript3_0_1_, item0_.price as price0_1_, item0_.category_id as category5_0_1_, category1_.id as id4_0_, category1_.name as name4_0_ from item item0_ left outer join category category1_ on item0_.category_id=category1_.id where item0_.id=? 2008-08-26 18:56:32,800 INFO [org.directwebremoting.impl.DefaultRemoter] - Exec: Cart.addItemToCart() Hibernate: /* load com.shop.persistence.pojo.Item */ select item0_.id as id0_1_, item0_.name as name0_1_, item0_.description as descript3_0_1_, item0_.price as price0_1_, item0_.category_id as category5_0_1_, category1_.id as id4_0_, category1_.name as name4_0_ from item item0_ left outer join category category1_ on item0_.category_id=category1_.id where item0_.id=? 2008-08-26 18:56:33,112 INFO [org.directwebremoting.impl.DefaultRemoter] - Exec: Cart.addItemToCart() 2008-08-26 18:56:33,300 INFO [org.directwebremoting.impl.DefaultRemoter] - Exec: Cart.addItemToCart()
|
Судя по логеру на двух последних записях до хибернейта дело уже не дошло. И вот после этого приложение перестает реагировать на пользовательские действия и просто замирает. Когда останавливаю томката из идеи сыпятся эксепшены:
| Код | cmd /c D:\Development\Servers\Web\apache-tomcat-5.5.17\bin\catalina.bat stop Using CATALINA_BASE: C:\Documents and Settings\dmitry\.IntelliJIdea70\system\tomcat_Unnamed_Shop352dd8f5 Using CATALINA_HOME: D:\Development\Servers\Web\apache-tomcat-5.5.17 Using CATALINA_TMPDIR: D:\Development\Servers\Web\apache-tomcat-5.5.17\temp Using JRE_HOME: D:\Development\JDK\jdk1.5.0_08 26.08.2008 19:01:03 org.apache.coyote.http11.Http11BaseProtocol pause INFO: Pausing Coyote HTTP/1.1 on http-8081 26.08.2008 19:01:04 org.apache.catalina.core.StandardService stop INFO: Stopping service Catalina 2008-08-26 19:01:04,093 INFO [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/]] - Closing Spring root WebApplicationContext 2008-08-26 19:01:04,093 INFO [org.springframework.web.context.support.XmlWebApplicationContext] - Closing org.springframework.web.context.support.XmlWebApplicationContext@b02928: display name [Root WebApplicationContext]; startup date [Tue Aug 26 18:56:05 EEST 2008]; root of context hierarchy 2008-08-26 19:01:04,093 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5f2db0: defining beans [dataSource,sessionFactory,__dwrConfiguration,__Catalogue,catalogueBean,__Cart,cartBean,dwrController,itemDao,cartDao,transactionManager,cartManagerProxy,catalogueManagerProxy]; root of factory hierarchy 2008-08-26 19:01:04,093 INFO [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean] - Closing Hibernate SessionFactory 2008-08-26 19:01:04,093 INFO [org.hibernate.impl.SessionFactoryImpl] - closing 26.08.2008 19:01:04 org.apache.catalina.core.StandardWrapper unload INFO: Waiting for 2 instance(s) to be deallocated Hibernate: /* load com.shop.persistence.pojo.Item */ select item0_.id as id0_1_, item0_.name as name0_1_, item0_.description as descript3_0_1_, item0_.price as price0_1_, item0_.category_id as category5_0_1_, category1_.id as id4_0_, category1_.name as name4_0_ from item item0_ left outer join category category1_ on item0_.category_id=category1_.id where item0_.id=? 2008-08-26 19:01:04,109 WARN [org.directwebremoting.servlet.ExceptionHandler] - Unhandled Exception java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:121) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:733) at org.directwebremoting.spring.SpringContainer.getBean(SpringContainer.java:85) at org.directwebremoting.impl.DefaultServerContext.getScriptSessionManager(DefaultServerContext.java:104) at org.directwebremoting.impl.DefaultWebContext.getScriptSession(DefaultWebContext.java:81) at org.directwebremoting.dwrp.BaseCallMarshaller.marshallOutbound(BaseCallMarshaller.java:305) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:53) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.spring.DwrSpringServlet.doPost(DwrSpringServlet.java:158) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) 2008-08-26 19:01:04,109 WARN [org.directwebremoting.impl.DefaultRemoter] - Method execution failed: java.lang.NullPointerException at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:788) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1560) at org.hibernate.loader.Loader.doQuery(Loader.java:661) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) at org.hibernate.loader.Loader.loadEntity(Loader.java:1784) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2977) at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:393) at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:374) at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:137) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:96) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878) at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:836) at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:66) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:172) at com.shop.persistence.pojo.Item$$EnhancerByCGLIB$$f51a4787.getPrice(<generated>) at com.shop.service.impl.CartServiceImpl.addItemToCart(CartServiceImpl.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.spring.DwrSpringServlet.doPost(DwrSpringServlet.java:158) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) 2008-08-26 19:01:04,124 WARN [org.directwebremoting.servlet.ExceptionHandler] - Unhandled Exception java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:121) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:733) at org.directwebremoting.spring.SpringContainer.getBean(SpringContainer.java:85) at org.directwebremoting.impl.DefaultServerContext.getScriptSessionManager(DefaultServerContext.java:104) at org.directwebremoting.impl.DefaultWebContext.getScriptSession(DefaultWebContext.java:81) at org.directwebremoting.dwrp.BaseCallMarshaller.marshallOutbound(BaseCallMarshaller.java:305) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:53) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.spring.DwrSpringServlet.doPost(DwrSpringServlet.java:158) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) 26.08.2008 19:01:04 org.apache.coyote.http11.Http11BaseProtocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8081 Disconnected from server
|
Самое интересное что есть лог от хиберенейта, который судя по всему, пытался выполнить запрошенное действие на котором завис. Извиняюсь за сумбурность Есть идеи?
Добавлено через 12 минут и 2 секунды И applicationContext.xml изменился:
| Код | <?xml version="1.0"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value=""/> <property name="password" value=""/> </bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses"> <list> <value>com.shop.persistence.pojo.Item</value> <value>com.shop.persistence.pojo.Cart</value> <value>com.shop.persistence.pojo.Bill</value> <value>com.shop.persistence.pojo.Customer</value> <value>com.shop.persistence.pojo.Category</value> </list> </property>
<property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.use_sql_comments">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="current_session_context_class">thread</prop> <prop key="connection.pool_size">5</prop> </props> </property> </bean>
<bean id="catalogueBean" class="com.shop.service.impl.ItemServiceImpl"> <dwr:remote javascript="Catalogue"> <dwr:include method="getItem"/> <dwr:include method="findItems"/> </dwr:remote> <property name="itemDao" ref="itemDao"/> <property name="cartDao" ref="cartDao"/> </bean>
<bean id="cartBean" class="com.shop.service.impl.CartServiceImpl" scope="session"> <dwr:remote javascript="Cart"> <dwr:include method="addItemToCart"/> <dwr:include method="addItemToCartForName"/> <dwr:include method="removeItemFromCart"/> <dwr:include method="getFormattedTotalPrice"/> <dwr:include method="getCart"/> <dwr:include method="saveCart"/> <dwr:include method="getInclude"/> <dwr:include method="getLogin"/> </dwr:remote> <aop:scoped-proxy proxy-target-class="false" /> <property name="itemDao" ref="itemDao"/> <property name="cartDao" ref="cartDao"/> </bean>
<dwr:configuration> <dwr:convert type="bean" class="com.shop.persistence.pojo.Item"> <dwr:include method="id"/> <dwr:include method="name"/> <dwr:include method="description"/> <dwr:include method="formattedPrice"/> </dwr:convert> <dwr:convert type="bean" class="com.shop.service.impl.CartServiceImpl"> <dwr:include method="simpleContents"/> <dwr:include method="formattedTotalPrice"/> </dwr:convert> </dwr:configuration>
<dwr:controller id="dwrController" debug="true" />
<bean id="itemDao" class="com.shop.persistence.dao.ItemDAO"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
<bean id="cartDao" class="com.shop.persistence.dao.CartDAO"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
<bean id="cartManagerProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"/> <property name="target" ref="cartBean"/> <!--<property name="proxyTargetClass" value="true"/>--> <property name="transactionAttributeSource"> <bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/> </property> </bean>
<bean id="catalogueManagerProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"/> <property name="target" ref="catalogueBean"/> <property name="proxyTargetClass" value="true"/> <property name="transactionAttributeSource"> <bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/> </property> </bean> </beans>
|
Есть идеи? |