Java论坛网»Java技术»程序出现如此错误....

程序出现如此错误....

问?:
JSF+Spring+Hibernate应用的一个综合实例,Web.xml文件部分代码如下:
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml,/WEB-INF/faces-managed- beans.xml</param-value>
</context-param>

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>com.web.view.SecurityFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>SecurityFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>

<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

运行时出现如下错误:

Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.web.bo.Product.categoryIds - no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:191)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:183)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:48)
at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:134)
at com.web.view.ViewUtils.convertToList(ViewUtils.java:19)
at com.web.vo.ProductBean.setCategoryIds(ProductBean.java:240)
... 72 more

ERROR[http-8082-Processor23](ProductListBean.java:87)_Could not initialize ProductListBean
com.model.exception.CatalogException: Could not build ProductBean java.lang.reflect.InvocationTargetException
at com.web.view.ProductBuilder.createProductBean(ProductBuilder.java:43)
at com.web.vo.ProductListBean.init(ProductListBean.java:74)
at com.web.vo.BaseBean.setServiceLocator(BaseBean.java:23)
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)
...........
.........

什么原因会出现如上错误?
答!: 1:
不能延迟加载

你在session关闭后尝试调用某个对象没有加载的属性

在持久对象变成游离前 ,强迫加载 或者改配置文件
答!: 2:
配置文件如下:
<hibernate-mapping>
<class name="com.web.bo.Product" table="product">
<id name="id" type="string">
<column name="id" length="20" />
<generator class="native" />
</id>
<property name="name" type="string">
<column name="name" length="50" not-null="true" />
</property>
<property name="price" type="double">
<column name="price" precision="8" />
</property>
<property name="width" type="double">
<column name="width" precision="8" />
</property>
<property name="height" type="double">
<column name="height" precision="8" />
</property>
<property name="description" type="string">
<column name="description" />
</property>
<set name="categoryIds"
table="product_category"
cascade="all">
<key column="PRODUCT_ID"/>
<element column="CATEGORY_ID" type="string"/>
</set>
</class>
</hibernate-mapping>

并没有设置:lazy=true ,默认的应该是false吧. 也就是立即加载.
答!: 3:
怎么强迫加载, 如何改配置文件?
小弟刚接触这方面的东西,多谢高手不吝赐教.
答!: 4:
这里可是CSDN啊,别让人觉得这里没有高手.
分少???
小弟实在没那么多,顷其所有了.填了个100,结果提示错误.

相关JAVA教程:
菜鸟来送分了,tomcat的小问题
ejc.org(中国大陆地区netbeans.rog唯一官方合作伙伴)发布ejc0.3bate
在线请教,Tomcat服务启动不了,报错信息如下。。。。谢谢!!!
struts里应用menu的问题
如何在窗体中嵌入浏览器
用hql如何向oracle数据库写入date型数据?
Hibernate异常请指教
请帮忙分析一下:axis1.4编写的web service client
部署webService出错
hibernate+spring的问题
poi.jar在哪下载啊?
axis问题,编译成功,在JBuilder里面也可以运行,但是export出来.exe,单独运行时候会有以下异常