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
Apache flex 弹簧&x2B;jstl&x2B;hibernate惰性初始化异常,如何在flex前端工作_Apache Flex_Hibernate_Spring_Intellij Idea_Jstl - Fatal编程技术网

Apache flex 弹簧&x2B;jstl&x2B;hibernate惰性初始化异常,如何在flex前端工作

Apache flex 弹簧&x2B;jstl&x2B;hibernate惰性初始化异常,如何在flex前端工作,apache-flex,hibernate,spring,intellij-idea,jstl,Apache Flex,Hibernate,Spring,Intellij Idea,Jstl,我正在开发一个特殊的应用程序,一个spring+hibernate设置。我在flex中有一个前端,现在我尝试添加一个jstl前端。我得到的延迟初始化异常是当我尝试从jstl模型和视图控制器调用一个方法时,我从我的flex fronend调用它,没有任何问题 这是我的web.xml: <?xml version="1.0" encoding="UTF-8"?> 没问题,我会得到用户列表并打印出来。但是,如果我试着在一个更复杂的对象上做这件事,它与自身和东西有关系,比如对象类别: Li

我正在开发一个特殊的应用程序,一个spring+hibernate设置。我在flex中有一个前端,现在我尝试添加一个jstl前端。我得到的延迟初始化异常是当我尝试从jstl模型和视图控制器调用一个方法时,我从我的flex fronend调用它,没有任何问题

这是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
没问题,我会得到用户列表并打印出来。但是,如果我试着在一个更复杂的对象上做这件事,它与自身和东西有关系,比如对象类别:

List categories = catalogFacadeImpl.getCategoryList();
我得到一个例外:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.bamboo.catW3.domain.Category.categories, no session or session was closed
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:488)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
这通常是hbm和关系配置方式的问题,然而,情况并非如此,因为从flex中我调用了完全相同的方法,没有任何问题。所以我想我并没有像以前那样分享豆子。这也不会给我这个错误


我现在真的很困惑,任何关于去哪里找的建议都将不胜感激。非常感谢,为了以防万一,我试着发布了hbm,但我渴望这篇文章。

我没有读完整的问题,但是对于远程前端的
LazyInitializationException
的解决方案是在通过网络发送集合之前初始化集合。因此,要么:

  • 将所有集合定义为
    EAGER
  • 调用休眠。在发送之前初始化(..)

有关更多信息,请参阅和。它们是相关的,尽管后者是关于GWT的。

我没有阅读整个问题,但是对于远程前端的
LazyInitializationException
的解决方案是在通过网络发送集合之前初始化集合。因此,要么:

  • 将所有集合定义为
    EAGER
  • 调用休眠。在发送之前初始化(..)

有关更多信息,请参阅和。它们是相关的,尽管后者与GWT有关。

尝试将
@Transactional
添加到您的服务方法。

尝试将
@Transactional
添加到您的服务方法。

考虑将此问题向下编辑。这么长时间的问题往往不会被阅读。我们会记住,在未来,这个问题得到了回答,但是没有完全阅读。感谢您考虑将此问题向下编辑。这么长时间的问题往往不会被阅读。我们会记住,在未来,这个问题得到了回答,但是没有完全阅读。谢谢你好,波佐,多亏了你的帖子,我才得以工作,万分感谢你的帮助!!你提出的两个解决方案中有任何一个都没有通过,甚至没有尝试过,因为在阅读第二个答案时,它建议尝试一个名为OpenSessionInViewFilter的过滤器,它解决了我的问题,尽管我不知道它是如何做到的!以及为什么flex前端在过去不需要这个过滤器。再见!你好,波佐,多亏了你的帖子,我才得以工作,万分感谢你的帮助!!你提出的两个解决方案中有任何一个都没有通过,甚至没有尝试过,因为在阅读第二个答案时,它建议尝试一个名为OpenSessionInViewFilter的过滤器,它解决了我的问题,尽管我不知道它是如何做到的!以及为什么flex前端在过去不需要这个过滤器。再见!
<!-- ========================= GENERAL DEFINITIONS ========================= -->

<!-- ========================= DATA ACCESS OBJECT DEFINITIONS ======================== -->

<bean id="dataSource"
      class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:comp/env/jdbc/catWDB</value>
    </property>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource"><ref local="dataSource"/></property>
    <property name="mappingResources">
        <list>
            <value>/com/bamboo/catW3/catW3.hbm.xml</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.connection.pool_size">3</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<bean id="transactionManager" lazy-init="true" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="categoryDAOTarget" class="com.bamboo.catW3.DAO.impl.CategoryDAOImpl">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="containerDAOTarget" class="com.bamboo.catW3.DAO.impl.ContainerDAOImpl">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="productDAOTarget" class="com.bamboo.catW3.DAO.impl.ProductDAOImpl">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="productOptionDAOTarget" class="com.bamboo.catW3.DAO.impl.ProductOptionDAOImpl">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="productStatusDAOTarget" class="com.bamboo.catW3.DAO.impl.ProductStatusDAOImpl">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="userDAOTarget" class="com.bamboo.catW3.DAO.impl.UserDAOImpl">
    <property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    <property name="velocityProperties">
        <value>
            resource.loader=class
            class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
        </value>
    </property>
</bean>

<!-- ========================= BUSINESS OBJECT DEFINITIONS ======================== -->

<bean id="catalogFacadeTarget" class="com.bamboo.catW3.business.impl.CatalogFacadeImpl">
    <property name="categoryDAO"><ref local="categoryDAOTarget"/></property>
    <property name="containerDAO"><ref local="containerDAOTarget"/></property>
    <property name="productDAO"><ref local="productDAOTarget"/></property>
    <property name="productOptionDAO"><ref local="productOptionDAOTarget"/></property>
    <property name="productStatusDAO"><ref local="productStatusDAOTarget"/></property>
    <property name="userDAO"><ref local="userDAOTarget"/></property>
</bean>




  <!-- ================================ VIEW RESOLVER ===================================== -->

      <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="viewClass">
          <value>org.springframework.web.servlet.view.JstlView</value>
          </property>
      <property name="prefix">
          <value>/WEB-INF/jsp/</value>
      </property>
      <property name="suffix">
          <value>.jsp</value>
      </property>
      </bean>


<!-- ========================= ASPECT CONFIGURATION ======================== -->

<bean id="catalogFacade" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager">
        <ref local="transactionManager"/>
    </property>
    <property name="target">
        <ref local="catalogFacadeTarget"/>
    </property>
    <property name="transactionAttributes">
        <props>
            <prop key="add*">PROPAGATION_REQUIRED</prop>
            <prop key="save*">PROPAGATION_REQUIRED</prop>
            <prop key="update*">PROPAGATION_REQUIRED</prop>
            <prop key="delete*">PROPAGATION_REQUIRED</prop>
            <prop key="remove*">PROPAGATION_REQUIRED</prop>
            <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>
            <prop key="contains*">PROPAGATION_SUPPORTS,readOnly</prop>
            <prop key="login*">PROPAGATION_SUPPORTS,readOnly</prop>
        </props>
    </property>
</bean>
<?xml version="1.0" encoding="UTF-8"?>
<!-- URL mapping -->
<bean id="urlMap"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="urlMap">
        <props>
        <prop key="/welcome.htm">welcome</prop>
        <prop key="/welcome">welcome</prop>
        <prop key="/catalog.htm">catalog</prop>
        <prop key="/catalog">catalog</prop>
        </props>
    </property>
</bean>



<!-- Controllers -->
<bean name="welcome"
    class="com.bamboo.catW3.business.impl.Welcome">
    <property name="successView">
        <value>welcome</value>
    </property>
     <property name="catalogFacadeImpl" ref="catalogFacadeTarget"/>
</bean>
<bean name="catalog"
        class="com.bamboo.catW3.business.impl.Catalog">
        <property name="successView">
            <value>catalog</value>
        </property>
         <property name="catalogFacadeImpl" ref="catalogFacadeTarget"/>
 </bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
    <value>org.springframework.web.servlet.view.JstlView</value>
    </property>
<property name="prefix">
    <value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
    <value>.jsp</value>
</property>
</bean>
<property name="catalogFacadeImpl" ref="*catalogFacadeTarget*"/>
List users = catalogFacadeImpl.getUserList();
List categories = catalogFacadeImpl.getCategoryList();
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.bamboo.catW3.domain.Category.categories, no session or session was closed
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:488)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)