Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DWR/OpenSessionInView“;会议结束了&引用;在Java和Hibernate中_Java_Hibernate_Spring_Dwr - Fatal编程技术网

DWR/OpenSessionInView“;会议结束了&引用;在Java和Hibernate中

DWR/OpenSessionInView“;会议结束了&引用;在Java和Hibernate中,java,hibernate,spring,dwr,Java,Hibernate,Spring,Dwr,他们说hibernate和webapp中使用ajax的封闭会话是java和spring的常见问题,因此我必须像这样在web.xml中设置OpenSessionInViewInFilter <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-pa

他们说hibernate和webapp中使用ajax的封闭会话是java和spring的常见问题,因此我必须像这样在web.xml中设置OpenSessionInViewInFilter

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>    
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
    </param-value>
</context-param>
<filter>
    <filter-name>springFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>springFilter</filter-name>
    <url-pattern>/dwr/*</url-pattern>
</filter-mapping>

org.springframework.web.context.ContextLoaderListener
上下文配置位置
/WEB-INF/applicationContext.xml
弹簧过滤器
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
弹簧过滤器
/dwr/*
但即便如此,当我尝试使用hibernate标准api时,我还是会遇到“会话已关闭”的hibernate异常,所以我尝试了使用OpenSessioninViewInterceptor的另一种spring方法

<bean id="urlMapping"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="alwaysUseFullPath" value="false"/>
     <property name="mappings">
            <props>
                <prop key="*">dwrController</prop>
            </props>
    </property>
    <property name="interceptors">
<bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">

DWR控制器

拦截器呢

<bean id="urlMapping"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="alwaysUseFullPath" value="false"/>
     <property name="mappings">
            <props>
                <prop key="*">dwrController</prop>
            </props>
    </property>
    <property name="interceptors">
<bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">

相同的“会话已关闭”问题。请帮帮我。我是Java新手,非常感谢您的帮助


我目前正在maven的jetty插件6.1.10版中运行。

请确保不要在不同的线程之间传递数据。如果使用延迟加载(检查hibernate映射的默认值),这尤其容易


假设一个实体Y是延迟加载的,并且是从实体X(通过Hibernate)引用的,并且您将X从一个线程传递到另一个线程,并且在另一个线程中执行X.getY(),那么您就有麻烦了。

找到了它。我需要在我的服务类中声明@Transactional

你在运行什么web服务器?我目前正在maven的jetty中运行。。