Java Spring会话+Redis+JSF

Java Spring会话+Redis+JSF,java,spring,jsf,redis,spring-session,Java,Spring,Jsf,Redis,Spring Session,我目前正在从事一个项目,需要将HTTP会话和其他对象(如JSF状态、控制器等)外部化。我的项目在web层上使用JSF加上PrimeFaces和其他一些LIB,完全处于JEE状态。在Payara服务器上运行,使用AWS的Docker 我的控制器是完全有状态的,我需要保持这种状态。我研究了如何在不改变太多代码的情况下轻松外部化用户会话,并发现了Spring会话。问题是我对Spring以及如何将它引入到我的项目中没有任何经验,到目前为止,我所有的尝试都失败了 我不使用Maven,目前我不太可能使用它,

我目前正在从事一个项目,需要将HTTP会话和其他对象(如JSF状态、控制器等)外部化。我的项目在web层上使用JSF加上PrimeFaces和其他一些LIB,完全处于JEE状态。在Payara服务器上运行,使用AWS的Docker

我的控制器是完全有状态的,我需要保持这种状态。我研究了如何在不改变太多代码的情况下轻松外部化用户会话,并发现了Spring会话。问题是我对Spring以及如何将它引入到我的项目中没有任何经验,到目前为止,我所有的尝试都失败了

我不使用Maven,目前我不太可能使用它,因为项目太大,无法移动,所以我必须手动导入所有LIB。我只想导入libspring+Spring会话,配置Redis访问,并尽可能少地更改代码。有那么简单吗

我的问题是:在我的情况下,使用Spring会话的最佳方法是什么?有人知道一种更好/更简单的方法将JSF会话外部化到Redis吗


谢谢。

我要做的是:我不会尝试重新发明车轮,很可能在你的预算中没有足够的空闲时间和资金来找到这样的解决方案

为什么?

你有一个很大的基于ant的项目,spring是基于maven的,它有一个如此巨大的依赖树,没有maven你将无法真正管理它。我甚至不想尝试在spring boot/mvc中构建一个没有maven的hello world。即使您能够以某种方式将它们组合在一起,我打赌jar版本的差异也会带来很多类路径问题。您必须注意您使用的Java版本,您必须选择spring版本,以便spring支持您的JDK

还有技术上的区别:您可能可以使用CDI从EJB调用SpringBean,或者反过来调用SpringBean,至少在Wildfly上是这样的,但是如果您仔细考虑一下,您可能不想这样做。如果你曾经与Spring合作过,你会知道,这是,khm,不容易的

最后但并非最不重要的一点:您希望使用Spring替换/实现Payara会话复制。。。为了做到这一点,您必须非常了解Payara的内部结构、Spring的内部结构以及许多其他可以做到这一点的东西

总之,如果我是你,我会实现标准会话复制,或者更好的是,实现无状态后端。您可以拥有更多集群,这样您就不会在所有节点之间复制会话

你真的应该考虑向Maven或Gealle迈进,从长远来看,它将几乎只带来好处。我很喜欢它。
如果你有很多定制的ant任务,但是有maven antrun插件,那么唯一的缺点就是,如果没有任何东西对你有帮助,那么编写自己的maven插件并不难。

你如何构建你的项目?和蚂蚁一起?是的。我使用Netbeans,所以它是用ant构建的。您是否希望进行会话复制,因此您正在尝试外部化会话?这是正确的。但我不想像Hazelcast那样在所有Payara节点中复制会话,只想将其存储在Redis等外部服务中。我使用Netbeans,所以它是用ant构建的:这两者之间有什么关系?Netbeans是一个IDE,所以您可以在ant、Maven、Gradle中进行构建。谢谢您的时间。我们确实有很多ant任务,主要是构建一些我们自己的SDK,但我来看看。现在,我认为我们将变得无国籍。这将是非常痛苦的,因为我们的应用程序非常依赖有状态bean。