Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在没有数据库的JavaEE应用程序中保存数据?_Java_Jakarta Ee_Java Ee 6_Cdi_Infinispan - Fatal编程技术网

有没有一种方法可以在没有数据库的JavaEE应用程序中保存数据?

有没有一种方法可以在没有数据库的JavaEE应用程序中保存数据?,java,jakarta-ee,java-ee-6,cdi,infinispan,Java,Jakarta Ee,Java Ee 6,Cdi,Infinispan,您是否知道一种兼容JavaEE的方法,可以在不使用数据库的情况下在JavaEE应用程序中保存数据(比如两个键值对)? 解决方案应该在集群中可用。我知道数据网格的概念(例如JBoss中的Infinispan),但我更喜欢应用程序不依赖于特定应用程序服务器的解决方案(例如,JCache很好,但据我所知,它只能作为Infinispan的本地缓存使用,而不能作为分布式缓存使用) 例如,是否可以使用CDI以某种方式保存数据(可能在context@ApplicationScoped中)?如果是,你能描述一下

您是否知道一种兼容JavaEE的方法,可以在不使用数据库的情况下在JavaEE应用程序中保存数据(比如两个键值对)? 解决方案应该在集群中可用。我知道数据网格的概念(例如JBoss中的Infinispan),但我更喜欢应用程序不依赖于特定应用程序服务器的解决方案(例如,JCache很好,但据我所知,它只能作为Infinispan的本地缓存使用,而不能作为分布式缓存使用)

例如,是否可以使用CDI以某种方式保存数据(可能在context@ApplicationScoped中)?如果是,你能描述一下,怎么做


编辑:谢谢你的回答。他们现在都建议我使用某些框架。但是,有没有一种方法仅仅使用JavaEE堆栈就可以做这样的事情呢?

我认为您正在搜索的是内存中的数据网格。举个例子


不过,您应该小心,如果数据很重要,请明确存储数据(大多数情况下,这些数据用于boost缓存)。

我甚至不知道问题中的术语。但是,使用XML作为数据存储呢?

这也可以共享。

我认为,如果我正确理解您的用例,那么使用Oracle Coherence API是可能的,这在Infinispan中是可行的,此外,这也是Infinispan的基本用法之一。当使用嵌入式库时,您的应用程序将不依赖于任何应用程序服务器,Infinispan能够在该嵌入式模式下创建集群


请看这个问题和我对它的回答,我希望这能帮助并阐明您的问题:

尝试使用Terracotta的Bigmemory,它提供内存内数据缓存,在集群世界中表现出色。

谢谢您的回答。我毫不怀疑我能用英菲尼斯潘做到这一点。事实上,我的应用程序已经部署在JBoss上,我在集群环境中的特定场景中使用Infinispan(JBoss中的嵌入式应用程序),效果很好。但是同一个应用程序必须有一天能够在Websphere上运行,这就是我想要构建一个可移植解决方案的原因。在这种情况下使用Infinispan对我来说似乎有点奇怪,因为WAS有自己的数据网格。那么你会推荐用什么方式使用它呢?作为独立服务器或作为JCA连接器部署/打包在我的ear中?我不是解决方案架构师,但我认为您应该将嵌入式Infinispan库留在JBoss中,并迁移到最新的公开可用Infinispan上游版本()并使用这些库。然后,无论您为应用程序使用哪个应用程序服务器,您都应该能够使用内存中的Infinispan群集,即使使用Websphere,因为Infinispan功能绑定到您的应用程序,而不是应用程序服务器。我理解正确吗?有什么具体问题吗?嗯。。。我不确定,但我不认为这是一种符合JEE的方式。根据规范,我不允许自己在JEE应用程序中打开线程或端口,因为这些东西应该由容器管理。据我所知,在配置嵌入到我的应用程序中的Infinispan时,我必须这样做,不是吗?从我的观点来看:为了使集群中的节点能够彼此看到,您需要确保完美的JGroups通信。它可能需要一些开放端口,等等。但是,这仍然是Infinispan的主要使用案例,我不明白这怎么会违反JEE规范。它就是为此而设计的。我很抱歉我缺乏知识。如果您需要开发者的帮助,请访问jboss.org论坛或加入我们的IRC freenode上的#infinispan频道。开发人员在这方面的反应比在这方面更为迅速。缓存并不能节省时间。顺便说一句,与“答案”的内容相比,用户名很好。