求救,这个问题折腾我好几天了;
我加了抽象的Dao层,实体层,biz层之后就出现这样的错误了,能正常调用Dao层的方法,但是它貌似不能自动关闭Session的原因导至。希望高手帮我瞧瞧》。。我的分不是太多了,所以还望海涵...java.lang.reflect.InvocationTargetException
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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
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)
Caused by: java.lang.OutOfMemoryError: Java heap space
WARN - Resource org/apache/struts/action/ActionResources_zh_CN.properties Not Found.
WARN - Resource org/apache/struts/action/ActionResources_zh.properties Not Found.
WARN - Unhandled Exception thrown: class javax.servlet.ServletException
DEBUG - Removed value [org.springframework.orm.hibernate3.SessionHolder@15cd9c0] for key [org.hibernate.impl.SessionFactoryImpl@1e4eb5b] from thread [http-90-Processor25]
DEBUG - Closing single Hibernate Session in OpenSessionInViewFilter
DEBUG - Closing Hibernate Session
ERROR - Servlet.service() for servlet action threw exception
java.lang.OutOfMemoryError: Java heap space
我加了抽象的Dao层,实体层,biz层之后就出现这样的错误了,能正常调用Dao层的方法,但是它貌似不能自动关闭Session的原因导至。希望高手帮我瞧瞧》。。我的分不是太多了,所以还望海涵...java.lang.reflect.InvocationTargetException
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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
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)
Caused by: java.lang.OutOfMemoryError: Java heap space
WARN - Resource org/apache/struts/action/ActionResources_zh_CN.properties Not Found.
WARN - Resource org/apache/struts/action/ActionResources_zh.properties Not Found.
WARN - Unhandled Exception thrown: class javax.servlet.ServletException
DEBUG - Removed value [org.springframework.orm.hibernate3.SessionHolder@15cd9c0] for key [org.hibernate.impl.SessionFactoryImpl@1e4eb5b] from thread [http-90-Processor25]
DEBUG - Closing single Hibernate Session in OpenSessionInViewFilter
DEBUG - Closing Hibernate Session
ERROR - Servlet.service() for servlet action threw exception
java.lang.OutOfMemoryError: Java heap space
还不知道SSH是什么。
顶了~
<!-- AH_TuiSongInfo Setting -->
<bean name="/ah_tuisong"
class="cn.wujie.framework.ad.ah.services.action.AH_tuisongAction">
<property name="pluginBiz" ref="ah_tuisongBiz" />
</bean>
<bean id="ah_tuisongBiz"
class="cn.wujie.framework.ad.ah.biz.AH_TuisonginfoBizImpl">
<property name="tuisongDao" ref="ah_tuisongDao" />
</bean>
<bean id="ah_tuisongDao"
class="cn.wujie.framework.ad.ah.dao.AH_TuisonginfoDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- AH_UserConfigInfo Setting -->
<bean name="/ah_usrcfg"
class="cn.wujie.framework.ad.ah.services.action.AH_userconfigAction" >
<property name="pluginBiz" ref="ah_usrcfgBiz" />
</bean>
<bean id="ah_usrcfgBiz"
class="cn.wujie.framework.ad.ah.biz.AH_UserconfigBizImpl">
<property name="usrcfgDao" ref="ah_usrcfgDao"></property>
</bean>
<bean id="ah_usrcfgDao"
class="cn.wujie.framework.ad.ah.dao.AH_UserconfiginfoDAO" >
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- AH_UserFeedBackInfo Setting -->
<bean name="/ah_usrfeedback"
class="cn.wujie.framework.ad.ah.services.action.AH_userfeedbackAction" >
<property name="pluginBiz" ref="ah_usrfdbBiz" />
</bean>
<bean id="ah_usrfdbBiz"
class="cn.wujie.framework.ad.ah.biz.AH_UserfeedbackBizImpl">
<property name="usrfdbkDao" ref="ah_usrfdbDao" />
</bean>
<bean id="ah_usrfdbDao"
class="cn.wujie.framework.ad.ah.dao.AH_UserfeedbackDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- AH_UserInfo Setting -->
<bean name="/ah_usrinfo"
class="cn.wujie.framework.ad.ah.services.action.AH_UserinfoAction" >
<property name="pluginBiz" ref="ah_usrinfoBiz" />
</bean>
<bean id="ah_usrinfoBiz"
class="cn.wujie.framework.ad.ah.biz.AH_UserinfoBizImpl">
<property name="usrinfoDao" ref="ah_usrinfoDao" />
</bean>
<bean id="ah_usrinfoDao"
class="cn.wujie.framework.ad.ah.dao.AH_UserinfoDAO">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>applicationContext-config.xml:<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- dataSource config-->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
<property name="maxActive">
<value>${jdbc.maxActive}</value>
</property>
<property name="maxIdle">
<value>${jdbc.maxIdle}</value>
</property>
<property name="maxWait">
<value>${jdbc.maxWait}</value>
</property>
<property name="testOnBorrow">
<value>${jdbc.testOnBorrow}</value>
</property>
<property name="testOnReturn">
<value>${jdbc.testOnReturn}</value>
</property>
<property name="testWhileIdle">
<value>${jdbc.testWhileIdle}</value>
</property>
<property name="validationQuery">
<value>${jdbc.validQuery}</value>
</property>
</bean> <!-- SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- 将 LobHandler 注入到 SessionFactory 中 -->
<property name="lobHandler">
<ref bean="oracleLobHandler" />
</property>
<!-- 完毕 -->
<!--
property name="configLocation">
<value>classpath:hibernate.cfg.xml</value> </property
-->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:cn/wujie/framework/ad/domain</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.show_sql">
${hibernate.show_sql}
</prop>
<prop key="hibernate.format_sql">
${hibernate.format_sql}
</prop>
<prop key="hibernate.jdbc.fetch_size">
${hibernate.jdbc.fetch_size}
</prop>
<prop key="hibernate.jdbc.batch_size">
${hibernate.jdbc.batch_size}
</prop>
<prop key="hibernate.cache.use_second_level_cache">
${hibernate.cache.use_second_level_cache}
</prop>
</props>
</property>
</bean> <!-- 使用spring+hibernate处理oracle CLOB-->
<bean id="nativeJdbcExtractor" lazy-init="true"
class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" /> <bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor" />
</property>
</bean>
<!-- 完毕-->
<!-- TransactionManager -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 类型 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<!--指定切面 -->
<aop:config>
<aop:pointcut id="allManagerMethod"
expression="execution(* cn.wujie.framework.ad.abstractManager.impl.*.*(..))" />
<aop:advisor pointcut-ref="allManagerMethod"
advice-ref="txAdvice" />
</aop:config> <!-- 代理工厂 -->
<!--<bean id="baseTransactionProxy" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="update*">
PROPAGATION_REQUIRED,-RuntimeException
</prop>
<prop key="add*">
PROPAGATION_REQUIRED,-RuntimeException
</prop>
<prop key="save*">
PROPAGATION_REQUIRED,-RuntimeException
</prop>
<prop key="modify*">
PROPAGATION_REQUIRED,-RuntimeException
</prop>
<prop key="delete*">
PROPAGATION_REQUIRED,-RuntimeException
</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
-->
<!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入
<context:component-scan base-package="cn.wujie.framework.ad" />
使用annotation定义事务
<tx:annotation-driven transaction-manager="transactionManager" />
-->
<!-- 定时器 -->
<!--
<bean id="xxgljob" class="cn.wujie.framework.yx.datatrans.XxglJob">
<property name="xxglXxcDao"> <ref bean="xxglXxcDao"/> </property>
</bean> <bean id="sendXxJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"> <ref local="xxgljob" /> </property>
<property name="targetMethod"> <value>execute</value> </property>
</bean> <bean id="xxglTimeTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail"> <ref local="sendXxJob" /> </property>
<property name="startDelay"> <value>60000</value> </property>
<property name="repeatInterval"> <value>86400000</value> </property>
</bean> <bean id="myjob"
class="cn.wujie.framework.yx.datatrans.GlczjlSjcsJob"> </bean> <bean
id="saveProjectJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"> <ref local="myjob" /> </property>
<property name="targetMethod"> <value>execute</value> </property>
</bean> <bean id="timeTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail"> <ref local="saveProjectJob" /> </property>
<property name="startDelay"> <value>1000</value> </property>
地磅取数据间隔时间目前是5分钟 <property name="repeatInterval"> <value>300000</value>
</property> </bean> <bean id="scheduler" lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers"> <list> <ref bean="timeTrigger" /> <ref
bean="xxglTimeTrigger" /> </list> </property> </bean>
-->
</beans>
web.xml:<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>广告推送系统</display-name>
<!-- 配置Struts启动 -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/ah-struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<!-- 配置Spring启动监听 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:*applicationContext*.xml</param-value>
</context-param> <!-- Listener log4jConfigLocation -->
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- 配置Spring字符集过滤器 -->
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置Hibernate延迟加在 -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config>
<form-beans>
<form-bean name="ahTuisongForm"
type="cn.wujie.framework.ad.ah.services.form.AhTuisongForm" />
</form-beans> <global-exceptions />
<global-forwards />
<action-mappings>
<action parameter="operate" path="/ah_tuisong"
type="cn.wujie.framework.ad.ah.services.action.AH_tuisongAction" >
<forward name="usrfeedback_findByZone" path="/ah_usrfeedback.html?operate=findByZone"/>
<forward name="tuisong_result" path="/tuisong_query_result.jsp" />
<forward name="login" path="/login.jsp" />
</action>
<action parameter="operate" path="/ah_usrcfg"
type="cn.wujie.framework.ad.ah.services.action.AH_userconfigAction">
<forward name="tuisong_findByZone" path="/ah_tuisong.html?operate=findByZone" />
<forward name="login" path="/login.jsp" />
</action>
<action parameter="operate" path="/ah_usrfeedback"
type="cn.wujie.framework.ad.ah.services.action.AH_userfeedbackAction">
<forward name="tuisong_findByZone" path="/ah_tuisong.html?operate=findByZone" />
<forward name="login" path="/login.jsp" />
</action>
<action parameter="operate" path="/ah_usrinfo"
type="cn.wujie.framework.ad.ah.services.action.AH_UserinfoAction">
<forward name="usrcfg_findByZone" path="/ah_usrcfg.html?operate=findByZone" />
<forward name="login" path="/login.jsp" />
</action>
</action-mappings>
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
<message-resources
parameter="cn.wujie.framework.ad.ah.services.ApplicationResources" />
</struts-config>