java - org.apache.catalina.core.StandardContext 重新加载后 transient 变量为空

标签 java tomcat netbeans transient

我在一个类中有一个变量是 transient 的,因为它不是序列化的,只有当 tomcat 是 org.apache.catalina.core.StandardContext 时重新加载这个相同的变量是 null,不要知道为什么...

public class bean extends UnicastRemoteObject implements clientInterface{
 (...)
    private transient OAuthService service;
 (...)
}

当它出现在 netbeansApache tomcat 日志 org.apache.catalina.core.StandardContext 重新加载时,这个变量为 null .. ..

谁能告诉我为什么?

最佳答案

如果变量属于以某种方式附加到 HTTP session 的对象,就会发生这种情况。

重新加载后, session 的内容被序列化,一个新的类加载器被创建,然后 session 被反序列化。

因此,如果变量被标记为 transient ,则它不会被序列化,并且当重新加载完成时,它的内容将为空。

参见 tomcat documentation Persistence across Restarts 序列化和重新加载之间关系的部分,以及此 blog post session 持久性,了解有关 tomcat 如何处理重启的一些详细信息。

关于java - org.apache.catalina.core.StandardContext 重新加载后 transient 变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543642/

相关文章:

java - JTextArea 上的自动文本格式设置

java - 使用 JBoss Weld 环境引导简单的 Java SE "Hello World"桌面应用程序会导致运行时错误

java - 将没有主要方法(带有外部 jar)的 Java 项目导出到 Eclipse 中的 Jar

performance - NetBeans 运行很慢

java - 使用 Netbeans 平台使 JTable 具有撤消功能

带有背景图像的 Java 卡布局

java - 在本地主机上开发并在远程虚拟服务器上部署时的 Url 问题

Spring Tomcat 部署 : Soap call returns "405: Method not allowed"

tomcat - 从 netbeans 在远程 tomcat 服务器上部署 webapp

java - 为什么我不能选择 "file type"应用程序,而只能选择 netbeans/java 中的类和其他文件类型?