Spring、Infinispan 和 JBoss 7 集成

2023-12-26

我正在尝试使用 JBoss 7 Infinispan 缓存作为两个战争部署的基于 spring 的应用程序的通信形式(稍后会详细介绍)。我在访问 JBoss 托管缓存管理器时遇到问题。

当我使用

DefaultCacheManager cacheManager = new DefaultCacheManager();
cache = cacheManager.getCache();

在两个应用程序中的每一个上,我都有两个单独的缓存。有没有办法完全不使用 @ManagedBean 注释和 Java EE 标准来访问 JBoss 服务器创建的缓存?


完成。感谢 Kazaag,我使用了 JNDI。

JndiTemplate jndiTemplate = new JndiTemplate();
jndiTemplate.lookup("java:jboss/infinispan/container/cluster");

我遇到了众所周知的 DefaultEmbeddedCacheManager 类转换异常问题。我用了反射。

Map<Object, Object> cache;
JndiTemplate jndiTemplate = new JndiTemplate();
Object cacheManager;
try {
    cacheManager = (Object) jndiTemplate.lookup("java:jboss/infinispan/container/cluster");
    Method method = cacheManager.getClass().getMethod("getCache");
    cache = (Map) method.invoke(cacheManager);
} catch (Exception e) {
    e.printStackTrace();
    return;
}

此外,我必须将容器标记为急切地启动。

    <cache-container name="cluster" aliases="ha-partition" default-cache="default">
        <transport lock-timeout="60000"/>
        <replicated-cache name="default" mode="SYNC" start="EAGER" batching="true">
            <locking isolation="REPEATABLE_READ"/>
        </replicated-cache>
    </cache-container>

尽管不同的类加载器,缓存也会被复制。


如果每个应用程序都使用自己的缓存管理器,它们将具有单独的缓存。

您可以通过Spring的JNDI支持检索应用服务器管理的缓存容器(JNDI名称为java:jboss/infinispan/my-container-name)。因此 Spring 将负责确保每个部分都使用相同的容器。

我不能 100% 确定您会获得相同的缓存,它可能会返回一个应用程序特定的缓存(这两个应用程序数据对象实际上来自不同的类加载器)。

嵌入式缓存可能不适合应用程序间通信。您可能需要使用客户端/服务器范例。

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

Spring、Infinispan 和 JBoss 7 集成 的相关文章

随机推荐

  • API 2.2 中没有这样的表

    我的应用程序在较高版本中一切顺利 但在较低版本 例如 2 2 中 应用程序在从数据库获取数据时崩溃并出现此错误 07 17 21 46 36 361 I Database 520 sqlite returned error code 1 m
  • 在可可状态应用程序中显示图像

    你好 我开发了一个可可状态应用程序 例如 当我放置一个长标题时 它无法显示 如果我也放置一个图像作为图标 它也无法显示 但如果我放置一个小标题 它就可以正常工作 我该如何解决这个问题并使图像显示出来 statusItem NSStatusB
  • 块控制+Alt+删除

    I am doing an Online Quiz project in C The test client is a Windows Desktop Application running on Windows XP I need to
  • Spark JDBC 伪列不起作用

    对于我的用例 我尝试使用 Spark JDBC 读取一张大的 Oracle 表 因为我的表中没有整数类型列 所以我正在使用rownum as paritionColumn 我的 Spark 查询如下所示 为了测试 我使用只有 22000 行
  • Objective-C/cocoa框架中的NSAutoreleasePool有什么魔力?

    我发现 Objective C cocoa 框架的示例有以下代码 int main NSAutoreleasePool pool NSAutoreleasePool alloc init Create an array NSArray mo
  • 使用 C 预处理获取字符串的整数值

    我将如何创建一个C宏获取字符串的整数值 具体用例来自一个问题here https stackoverflow com questions 9524342 how to specify enum size in gcc 我想像这样更改代码 e
  • 具有固定页眉和页脚以及可滚动内容的 Flexbox

    我正在尝试让弹性盒设计发挥作用 我不是 HTML CSS 专家 我有一个弹性盒设计 具有固定的页眉和页脚以及占据页面其余可用空间的内容 当我将数据放入比可用空间长的内容区域时 内容会滚动 但我想实现不同的目标 我想在内容区域中有几个 div
  • CodeIgniter GROUP_CONCAT 并加入

    我试图找到一种方法将这两个表连接在一起 我能够做到这一点 但如果它发现多个匹配的值 它会再次显示产品表中的所有内容 现在我尝试一起使用 MySQL group concat 以便能够列出数组中一个字段中的所有 tName 但我不断收到 My
  • 将 MySQL 转储导入到 PostgreSQL 数据库

    如何将 xxxx sql 转储从 MySQL 导入到 PostgreSQL 数据库 这个问题有点老了 但几天前我正在处理这种情况并发现pgloader io http pgloader io 这是迄今为止最简单的方法 您需要安装它 然后运行
  • java.util.concurrent.TimeoutException:android.view.ThreadedRenderer.finalize() 10秒后超时

    我收到了有关 Lollipop 的奇怪崩溃报告 我的应用程序基本上是一个浏览器 因此它大量使用 WebView 但我不知道问题在那里发生 无论如何 崩溃报告没有提供太多有用的信息 这基本上就是我在下面粘贴的内容 java util conc
  • atob 函数不应在新代码中使用?

    我需要使用atob在我正在处理的 React 项目中 有一个函数 但 VSCode 在函数调用中插入了一行 悬停时我收到以下消息 提供此功能只是为了与旧版 Web 兼容 平台 API 永远不应该在新代码中使用 因为它们使用 表示二进制数据的
  • 无法收集 pydev 的 python 解释器信息

    操作系统 Windows 7 x64 蟒蛇 2 7 3 pydev 2 7 1 2012100913 Eclipse 版本 Juno Service Release 1 内部版本号 20121004 1855 我无法在 Pydev 中配置
  • 如何检查exe是否从服务器访问

    这是一个客户端服务器应用程序 我正在创建一个更新程序 它将替换 exe 文件列表 运行脚本以及其他需要更新的内容 这将安装在服务器上 首先 我需要检查可执行文件是否通过网络共享打开 我可以通过进入计算机管理然后共享文件和打开文件来手动执行此
  • 在keras中定义模型(include_top = True)

    有人能告诉我在 keras 中定义模型时 include top True 意味着什么吗 我在 Keras 文档中读到了这一行的含义 它表示 include top 是否包含网络顶部的全连接层 我仍在寻找这行代码的直观解释 ResNet50
  • Dropwizard Response.status(Response.Status.NOT_FOUND).build() 返回 html

    如果确实缺少资源 我的 API 将返回以下内容 code 404 message HTTP 404 Not Found 当我使用代码通过我的资源返回 404 时Response status Response Status NOT FOUN
  • 在 LINQ to 对象的语句中

    LINQ to 对象中是否存在与 SQL IN 语句等效的语句 Yes Contains http msdn microsoft com en us library system linq enumerable contains aspx
  • Java 中的 PPMD​​ 压缩?

    有谁知道 PPMD 压缩算法的 Java 实现吗 我还没有找到 Java 实现 但有一个 C 实现http users senet com au mjbone Compression html http users senet com au
  • 如何在 Windows 窗体应用程序中创建全局错误处理程序?

    我认为有一个组件允许创建全局错误处理 例如 当发生不好的事情时 我自己会抛出异常 例如 throw new ArgumentNullException playlist is empty 我怎样才能在全球范围内捕捉到它 您可以通过以下方式完
  • 使用 std::make_shared 抽象类实例化时出错

    我将省略相当多的代码 因为这些是一些相当大的对象 而我的问题实际上只涉及 std make shared 的操作 我在命名空间 SYNC 中有一个名为 D3D11Shader 的对象 这有一个static函数调用 SYNC D3D11Sha
  • Spring、Infinispan 和 JBoss 7 集成

    我正在尝试使用 JBoss 7 Infinispan 缓存作为两个战争部署的基于 spring 的应用程序的通信形式 稍后会详细介绍 我在访问 JBoss 托管缓存管理器时遇到问题 当我使用 DefaultCacheManager cach