문제

그들은 hibernate 및 ajax와의 웹 app의 폐쇄 세션이 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>

그러나 그 점에서도 최대 절전 모드 기준 API를 사용하려고 할 때 "세션이 닫힌"최대 절전술 예외를 얻습니다.

<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 내에서 실행 중입니다.

도움이 되었습니까?

해결책

다른 스레드에서 데이터를 전달하지 않도록하십시오. 게으른 하중을 사용하는 경우 특히 쉽습니다 (최대 절전 모드 매핑 기본값을 확인하십시오).

엔티티 Y가 게으른로드되어 엔티티 X (최대 절전 모드를 통해)에서 참조되고 X를 한 스레드에서 다른 스레드로 전달하고 다른 스레드에서 X.gety ()를 전달하는지 말하면 문제가 발생합니다.

다른 팁

그것을 발견. 서비스 클래스에서 @transactional을 선언해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top