还是用代码说事吧
java 代码
- this.control = (TableOption) BeanFactory.getInstance().getBean("tableoption");
- this.scheduler.setId(schedulerId);
- this.scheduler = (TScheduler)this.control.getInfo(scheduler);
- System.out.println(this.scheduler.getNode().getAuthor().getName());
执行第四行时报错
- 严重: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
- at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
- at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
- at com.actmaps.rights.user.TableUserInfo$$EnhancerByCGLIB$$b4dd839.getName(<generated></generated>)
- at com.actmaps.scheduler.mail.SendMail.initParams(SendMail.java:44)
- at com.actmaps.scheduler.ReminderManage.execute(ReminderManage.java:53)
- at com.actmaps.scheduler.ReminderManage.executeInternal(ReminderManage.java:26)
- at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
- at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
- at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
- at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
- at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
- at com.actmaps.rights.user.TableUserInfo$$EnhancerByCGLIB$$b4dd839.getName(<generated></generated>)
- at com.actmaps.scheduler.mail.SendMail.initParams(SendMail.java:44)
- at com.actmaps.scheduler.ReminderManage.execute(ReminderManage.java:53)
- at com.actmaps.scheduler.ReminderManage.executeInternal(ReminderManage.java:26)
- at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
- at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
- at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
- 2007-8-30 19:12:36 com.actmaps.scheduler.ReminderManage execute
- 严重: 执行定时提醒时发生异常:could not initialize proxy - no Session
对于BeanFactory
java 代码2
- public class BeanFactory {
- protected static final Log log = LogFactory.getLog(BeanFactory.class);
- private static String[] contextFile = new String[]{"applicationContext.xml"};
- private static ApplicationContext ac;
- private SessionFactory sessionFactory;
- private Session session;
-
-
-
-
-
-
- static class SingletonHolder{
- static BeanFactory instance = new BeanFactory();
- }
-
- private BeanFactory(){
- log.info("*************开始加载Spring*************");
- ac = new ClassPathXmlApplicationContext(contextFile);
- sessionFactory = (SessionFactory) ac.getBean("sessionFactory");
- session = SessionFactoryUtils.getSession(sessionFactory, true);
- TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session));
- log.info("*************完成加载Spring*************");
- }
-
- public static final BeanFactory getInstance(){
- return SingletonHolder.instance;
- }
-
-
-
-
-
-
- public Object getBean(String beanid){
- return ac.getBean(beanid);
- }
- }
scheduler的配置文件
- <class name="TScheduler" table="Scheduler_Scheduler">
- <id name="id" type="integer" column="id">
- <generator class="foreign">
- <param name="property">nodeparam>
- generator>
- id>
- <one-to-one name="node" class="com.actmaps.common.TNode" constrained="true" fetch="select"/>
-
- <property name="valid" column="valid" type="boolean" not-null="false"/>
- <property name="startDate" column="startDate" type="java.util.Date" not-null="false"/>
- <property name="endDate" column="endDate" type="timestamp" not-null="false"/>
- <property name="repeatNum" column="repeatNum" type="integer" not-null="false"/>
- <property name="repeatInterval" column="repeatInterval" type="long" not-null="false"/>
- .......
node的配置文件
- <class name="com.actmaps.common.TTreeNode" table="Common_Node" dynamic-update="true" polymorphism="explicit">
- <id name="id" type="integer" column="id">
- <generator class="native"/>
- id>
- <discriminator column="NODE_TYPE" type="string"/>
- <property name="name" column="name" type="string" not-null="false"/>
- <many-to-one name="author" column="authorId" class="com.actmaps.rights.user.TableUserInfo" not-null="false"/>
- ......
-
在BeanFactory中已经将session绑定了,怎么还会报no session的异常,他在eclipse中运行正常,只是在tomcat中会出现该异常,还请大家,到底为什么会这样
分享到:
相关推荐
当我们在Controller方法中尝试获取session时,如果当前请求没有与之关联的session,Spring MVC就会抛出“No Session found for current thread”的异常。 1. **配置问题**: - **DispatcherServlet配置**:确保你...
Spring Boot 集成 Spring Session ...在本文中,我们学习了如何使用 Spring Boot 集成 Spring Session 实现 Session 共享。这种方法可以帮助我们在分布式环境中实现 Session 共享,提高应用程序的可扩展性和可靠性。
我们将从Spring Session的基础知识、Redis在Spring Session中的作用、监听机制导致线程问题的原因以及如何通过配置自定义线程池来解决这一问题等方面进行详细介绍。 首先,Spring Session是一个用于管理用户会话...
在Servlet中,session指的是HttpSession类的对象。服务器在创建session后,会把sessionid以cookie的形式回写给客户端。只要客户端的浏览器不关,每一次访问服务器都会带上这个sessionid。这样就可以在每次请求的时候...
在Spring Boot应用中,当你遇到“`No session repository could be auto-configured, check your configuration`”的错误时,这通常意味着Spring Boot无法自动配置用于管理会话(session)的存储库。Spring Boot提供...
"No Hibernate Session bound to thread" 错误信息通常是因为 Hibernate Session 未被绑定到当前线程所致。在 Hibernate 中,每个线程都需要一个 Session 对象来与数据库交互。如果未绑定 Session 到线程, ...
如果用户未登录(即session中没有该属性),则拦截器可以拒绝用户的请求,并且通过PrintWriter输出提示信息给用户,告知他们需要先登录。 拦截器的实现基于HandlerInterceptor接口,该接口中定义了几个方法,最常用...
首先,我们创建一个名为`SessionScope`的自定义注解,用于标记需要从Session中获取的参数或方法: ```java import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang....
SSH(Spring、Struts、Hibernate)是Java Web开发的经典组合,这个压缩包中包含了一些关于Spring在实际使用过程中的心得和常见问题的解决方案。 首先,"spring的事务代理.txt"可能涉及到Spring的事务管理。Spring...
2、报错:org.hibernate.HibernateException: No Session found for current thread 意思是必须在transcation.isActive()条件下才能执行, 可以解决办法是:当方法不需要事务支持的时候,使用 Session ...
创建一个简单的应用场景,例如在登录后将用户信息存储在Session中,然后在不同的请求中验证是否能正确读取。通过多台服务器或模拟分布式环境测试Session共享的效果。 通过以上步骤,你就可以成功地使用Spring和...
同时,理解并掌握Spring与Hibernate的集成机制,以及Session、Transaction的生命周期管理,是避免此类问题的关键。以上就是关于"集成spring的hibernate懒加载"问题的详细解析,希望对你有所帮助。
在Spring的配置文件中,可以通过如下方式来配置Hibernate和Spring的集成: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:...
**Spring SpEL(Spring Expression Language)表达式详解** Spring Expression Language,简称SpEL,是...在实际开发中,结合Eclipse和Maven,我们可以方便地构建项目,解决依赖问题,同时利用SpEL实现各种动态逻辑。
AOP(Aspect Oriented Programming)模块是Spring框架中的一个重要组成部分,它提供了一种在运行时动态插入代码的能力,可以用来实现诸如日志记录、性能监控等功能,而不必修改业务逻辑代码本身。 **1.8 解释JDBC...
解决no-session问题 - 当使用无状态会话(stateless session)时,可能遇到no-session异常。 - 可以通过配置扩大session作用范围的过滤器来解决。 #### 七、练习案例:用户注册 1. **导入静态页面**:设计前端...
它最初被设计为解决企业应用开发中的复杂性问题,随着时间的发展,Spring已经成为了一个功能强大且全面的框架,支持从简单的Web应用到复杂的分布式系统的开发。 #### 二、Spring框架的特点 - **轻量级**:Spring...
Spring框架还提供了一系列的过滤器来处理Web应用中的请求,例如OpenSessionInViewFilter用于解决Hibernate懒加载问题。 - **OpenSessionInViewFilter**:此过滤器在请求处理开始时打开一个Hibernate会话,在请求...
2.2 Spring 中 Bean 的自动装配均有 By Type、By Name、No、Constructor 方式、Autodetect 方式等。 2.3 Spring 中 ApplicationContext 可以用到的 Bean 的作用域均有 Singleton、request、session 等。 Spring ...
Spring 框架是 Java Web 开发中广泛使用的轻量级框架,其核心特性是控制反转 (IOC) 和依赖注入 (DI)。控制反转是指将对象的创建权从应用程序代码转移到框架,即不再由程序主动创建对象,而是由框架负责创建和管理。...