java - 独立JBOSS7使用更多JVMS?

标签 java multithreading web-services jvm jboss7.x

我想将一些数据存储在静态变量中,并且希望部署在同一个 JBOSS7 上的所有 Web 服务都能访问这些数据。我认为独立的 JBOSS 在单个 JVM 中运行,所有服务都在同一个 JVM 中运行,因此它们可以访问静态变量。

但是我注意到当我的网络服务尝试获取数据时出现 NullPointerException。

这是我的存储类别:

public enum OneJvmCacheImpl {

    INSTANCE;

    private ConcurrentHashMap<String, Object> values = new ConcurrentHashMap<String, Object>();

    public <T> T get(String key, Class<T> type) {
        return type.cast(values.get(key));
    }

    ...     

}


OneJvmCacheImpl.INSTANCE.get(...);

您能告诉我为什么我无法从我的网络服务访问吗? 谢谢, 五、

最佳答案

如果您所说的部署是指单独的 war 文件,则静态变量对于其他 war 文件中的其他 Web 服务将不可见,因为它们是由不同的类加载器加载的。每场 war 都有它自己的类加载器,因此它有自己的类“类实例”。您也许可以通过将有问题的类移动到在部署之间共享的位置来解决这个问题,但我建议您无论如何都可以通过使用数据库或分布式缓存来解决它。

关于java - 独立JBOSS7使用更多JVMS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19888967/

相关文章:

java - 如何在Spring Tool Suite中运行两个Web项目而不发生冲突?

java - 为什么 java.util.concurrent.atomic.AtomicBoolean 在内部用 int 实现?

java - Linux 系统上使用 Java/Eclipse TPTP 进行 16 线程/16 核心代码分析

java - Tomcat + CxF 准备好投入生产了吗?

java - Twitter4j getOAuthRequestToken() 方法引发 ILLEGALSTATEEXCEPTION

Java - 数学函数的派生泛型类

python - 为什么 multiprocessing.Lock() 不锁定 Python 中的共享资源?

java - 什么是 webservices-rt.jar?跟 metro 有关系吗?

java - 轴 IllegalArgumentException 但 SOAP 消息是正确的

java - Android SQLite 测验应用程序