tomcat 重新启动 => 找不到 SessionFactory [uuid=...,name=null]

2024-01-10

继续解决这个情况 https://stackoverflow.com/questions/6506476/java-lang-illegalstateexception-unread-block-data,我已经更新了hibernate ond sqljdbc4 jars现在例外情况已更改(请看下面)。

我在用着

  • Hibernate v4.1.4 最终版
  • JSF 2.1(莫哈拉)
  • all my @ManagedBeans implements Serializable

和有一定的关系@ViewScoped, 因为@SessionScoped豆子还可以

我尝试过的:

  • enable <Manager pathname=""/> in context.xml,是的,异常消失了,但是我确实丢失了持久会话,所以我必须在tomcat服务器重新启动后重新登录。

  • 在 hibernate.cfg.xml 文件中进行更改(例如添加name="java:hibernate/SessionFactory" to <session-factory>标签),但没有成功

  • SESSIONS.ser文件,该文件是在之后创建的STOPtomcat服务器。

    • When I openser 文件,我可以找到类似的内容: ....uuidq ~ xppt $e8906373-f31b-4990-833c-c7680b2a77ce ...
    • if i START再次启动tomcat服务器,它报告Could not find a SessionFactory [uuid=8906373-f31b-4990-833c-c7680b2a77ce,name=null] - WHY???该会议似乎存在于SESSION.ser file...

My 会话管理器:

@SessionScoped
@ManagedBean(name="userManager")
public class UserManager implements Serializable {
  private static final long serialVersionUID = 1L;
  private transient HttpSession session;
  private String username;
  private String password;
  private User user;

  public String login() {
    // here is seraching for user in database (based on username and password)

    if (user != null) {
      FacesContext context = FacesContext.getCurrentInstance();
      session = (HttpSession) context.getExternalContext().getSession(true);
      session.setAttribute("id", user.getId());
      session.setAttribute("username", user.getName());
      ...
      return "success";
    } 
  }

  public String logout() {
    user = null;
    FacesContext context = FacesContext.getCurrentInstance();
    session = (HttpSession) context.getExternalContext().getSession(true);
    ...     
    session.invalidate();
    return "success";
  }
  // getters and setters ----------------------------------------------------
}

my hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC 
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>
  <property name="connection.url">jdbc:sqlserver://localhost;databaseName=RXP</property>
  <property name="connection.username">user</property>
  <property name="connection.password">password</property>
  <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
  <property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
  <property name="current_session_context_class">thread</property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.hbm2ddl.auto">update</property>

  <mapping class="tables.User"/>

 </session-factory>
</hibernate-configuration>

and my 会话工厂:

public final class DaoSF implements Serializable {
  private static final long serialVersionUID = 1L;

  private static SessionFactory sessionFactory;
  private static ServiceRegistry serviceRegistry;

  public static SessionFactory getSessionFactory() {
    try {
      Configuration configuration = new Configuration();
      configuration.configure("hibernate.cfg.xml");
      serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
      sessionFactory = configuration.buildSessionFactory(serviceRegistry);
      return sessionFactory;
    }
    catch (HibernateException he) { 
      ...
    }
  }
}

例外:

30.6.2012 13:29:07 org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.InvalidObjectException: Could not find a SessionFactory [uuid=f9c33312-cf7f-4f65-ae5f-44261705c18e,name=null]
java.io.InvalidObjectException: Could not find a SessionFactory [uuid=f9c33312-cf7f-4f65-ae5f-44261705c18e,name=null]
    at org.hibernate.internal.SessionFactoryImpl.locateSessionFactoryOnDeserialization(SessionFactoryImpl.java:2007)
    at org.hibernate.internal.SessionFactoryImpl.deserialize(SessionFactoryImpl.java:2037)
....

我尝试编辑我的hibernate.cfg.xml这样归档:

<session-factory name="java:hibernate/SessionFactory">

并且报告的错误已更改为:

30.6.2012 13:38:23 org.apache.catalina.session.StandardManager startInternal
SEVERE: Exception loading sessions from persistent storage
java.lang.NullPointerException
    at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
    at org.hibernate.internal.SessionFactoryRegistry.getSessionFactory(SessionFactoryRegistry.java:140)
    at org.hibernate.internal.SessionFactoryRegistry.getNamedSessionFactory(SessionFactoryRegistry.java:135)
    at org.hibernate.internal.SessionFactoryImpl.locateSessionFactoryOnDeserialization(SessionFactoryImpl.java:2000)
    at org.hibernate.internal.SessionFactoryImpl.deserialize(SessionFactoryImpl.java:2037)
....

您没有遇到过此错误报告吗?


你不想要的实例Session, 会话工厂 or DaoSF进行序列化。它们是暂时的,无法从文件中恢复。您最好首先弄清楚它们在哪里以及为什么被序列化到文件中。这就是您需要进行修复的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tomcat 重新启动 => 找不到 SessionFactory [uuid=...,name=null] 的相关文章

随机推荐

  • 权限拒绝:读取 com.android.providers.contacts.CallLogProvider

    我在特定手机和运营商上遇到此异常 Verizon 的 Samsung Galaxy S3 我已经在 Sprint 的 Evo 和 AT T 的 Galaxy Nexus 上进行了测试 没有一个给我这个错误 我想知道电话运营商是否对操作系统进
  • dask:并行模型中的共享内存

    我已经阅读了 dask 文档 博客等 但我仍然不是 100 清楚如何做到这一点 我的用例 我有大约 10GB 的参考数据 一旦加载 它们就是只读的 通常我们将它们加载到 Dask Pandas 数据框中 我需要这些参考数据来处理 丰富 修改
  • 如何在React Native应用程序中使用React Js组件?

    是否可以在React Native应用程序中使用所有ReactJS组件 如果不能 在React JS和React Native之间切换的最佳方法是什么 如果一个应用程序是使用react js完成的 是否有必要 强制 使用redux 主要有两
  • 将数据帧转换为另一个数据帧,将复合字符串单元格拆分为单独的行[重复]

    这个问题在这里已经有答案了 我希望使用 Python 将数据帧 df1 转换为 df2 我有一个使用循环的解决方案 但我想知道是否有更简单的方法来创建 df2 df1 Test1 Test2 2014 2015 2016 Present 1
  • AS3 克隆影片剪辑

    下面是我尝试克隆影片剪辑的代码 但它不起作用 如果代码工作正常 我们应该看到两个圆圈 The original MovieClip var circle MovieClip new MovieClip circle graphics beg
  • 如何从 .kube/config 中设置的当前上下文获取命名空间

    我正在尝试以编程方式在 Go 中获取 kube config 中当前上下文的命名空间 到目前为止 我尝试的是这些模块 k8s io client go tools clientcmd k8s io client go kubernetes
  • Laravel 使用 ssl 包含 css、js

    我刚刚在我的网络服务器上安装了 SSL 证书 但我的 laravel 设置遇到了一些问题 我在用着 HTML style css style css 包含 css 和 js HTML script js jquery js 虽然当我使用 h
  • 适用于 Mac OSX 的 IPython3

    我安装了 Ipython 但它在 python 2 7 5 上运行 我还安装了 python 3 3 如何进行更改以使 Ipython 在 python 3 3 而不是 2 7 5 上运行 你需要安装pip对于 Python 3 这就像访问
  • SharePoint 站点定义

    我基于发布门户创建了一个简单的站点定义 每次我想使用模板创建网站集时 都会收到以下错误消息 您选择的模板无效或无法找到 我不使用任何自定义功能 仅使用发布门户 site def 的默认功能 有什么提示吗 有一个错误日志 但它只提供了上面的信
  • 在 R 中使用 Quantmod 进行下载-保存-加载往返

    我想使用 quantmod 下载数据 将它们保存到文件中以便稍后加载 下面一段R代码 library quantmod symbols lt c DEXUSUK STLFSI GDP tmpdir lt tempdir getSymbols
  • 这些 RubyInstaller 2.4 组件有什么作用?

    几天之前 Windows 版 RubyInstaller 2 4 发布 https rubyinstaller org 2017 05 25 rubyinstaller 2 4 1 1 released html 安装后 它会问我以下问题
  • Neo4j over Bolt 协议具有非常高的延迟

    我正在将 Neo4j 用于一个项目 使用此处找到的 NET 官方 Neo4j 驱动程序 https www nuget org packages Neo4j Driver https www nuget org packages Neo4j
  • array.contains 的 jquery 版本

    jQuery 可以测试数组中是否存在对象 作为核心功能的一部分或通过可用的插件 另外 我正在寻找类似的东西array remove 这将从数组中删除给定的对象 jQuery 可以帮我处理这个问题吗 jQuery inArray http d
  • 进程已完成,退出代码 -1073741515 (0xC0000135)

    我正在运行一个 python 脚本 它曾经可以工作 现在甚至在我的另一台笔记本电脑上也可以 但不能在我当前的计算机上 我只是得到错误代码 Process finished with exit code 1073741515 0xC00001
  • 如何使用内联函数声明字典

    在将函数用作字典的元素之前 是否必须正式定义该函数 def my func print my func d function my func 我宁愿内联定义该函数 我只是想输入我想要做的事情 但是 python 语法的空白策略使得在字典中定
  • Web 应用程序的容器管理安全性

    我对容器管理的安全性完全陌生 需要一些帮助来在我的 Web 应用程序中配置它 我想限制对我的 Web 应用程序中的 jsp 的访问 这就是我在 web xml 中配置安全性的方式
  • Hbase 和 BigTable 有什么区别?

    谁能告诉我 Apache HBase 数据库和 Bigtable 之间有什么区别 或者它们是相同的吗 如果有的话 哪一个支持关系 如果他们是大搜索者 有什么区别 它们很相似 但又不一样 Bigtable 最初于 2005 年发布 但并未发布
  • RStudio 全局设置(选项)导出/导入

    我想导出 导入 RStudio 全局选项 通常可以在 RStudio 的 工具 gt 全局选项 中找到并设置这些选项 理想情况下 我可以运行一行代码 将现有设置保存到文件中 然后运行另一行代码以从此文件加载这些设置 这些选项包括 GUI 的
  • Git rebase 失败,“您对以下文件的本地更改将被合并覆盖”。没有本地改变吗?

    这是我尝试将 bugfix 分支合并到 master 分支以准备将其推向上游的记录 自从创建 bugfix 分支以来 已经有一些上游更改被拉入 master 并且现在拒绝 rebase 它引发错误的文件在打开时没有差异 没有添加 删除或重命
  • tomcat 重新启动 => 找不到 SessionFactory [uuid=...,name=null]

    继续解决这个情况 https stackoverflow com questions 6506476 java lang illegalstateexception unread block data 我已经更新了hibernate ond