Java 两个共享数据和会话的Web应用程序

Java 两个共享数据和会话的Web应用程序,java,spring,tomcat,Java,Spring,Tomcat,我已经编写了一个使用java、spring和tomcat8作为服务器的web应用程序,现在我想编写另一个,但这一个必须与前一个进行交互。它必须共享来自数据库和会话的一些数据(我的意思是,如果用户登录一个应用程序,他不需要登录其他应用程序)。实现这一点的最佳方式是什么 这是相当广泛的,但一般来说,两个应用程序只需使用相同的数据库配置,并且可以使用会话复制在服务器之间共享会话。Tomcat有一些内置的功能来实现这一点,但您也应该考虑,哪一个挂钩到Servlet过滤器链中,以跨平台的方式将会话外部化。

我已经编写了一个使用java、spring和tomcat8作为服务器的web应用程序,现在我想编写另一个,但这一个必须与前一个进行交互。它必须共享来自数据库和会话的一些数据(我的意思是,如果用户登录一个应用程序,他不需要登录其他应用程序)。实现这一点的最佳方式是什么

这是相当广泛的,但一般来说,两个应用程序只需使用相同的数据库配置,并且可以使用会话复制在服务器之间共享会话。Tomcat有一些内置的功能来实现这一点,但您也应该考虑,哪一个挂钩到Servlet过滤器链中,以跨平台的方式将会话外部化。

< P>这是相当广泛的,但一般来说,您只需为两个应用程序使用相同的数据库配置,您还可以使用会话复制在服务器之间共享会话。Tomcat有一些内置的功能,但您也应该考虑,它与servlet过滤器链挂钩,以跨平台的方式将会话外部化。

有一些会话群集解决方案,但由于您处于Spring生态系统中,请看一看新推出的解决方案,它使这项任务变得更容易,而且与webapp提供商无关。

有一些会话群集解决方案集群,但由于您处于Spring生态系统中,请查看新发布的,它使此任务更容易,而且与webapp提供商无关。

通常不建议共享会话,对于数据库共享,请使用JNDI并获取对象。如果要在您的情况下处理登录,请使用单点登录。

通常不建议使用共享会话,对于数据库共享,请使用JNDI并获取对象。如果要在您的情况下处理登录,请使用单点登录。

有几种方法可以解决此问题。Tomcat支持集群,请参见: 但正如Dimitrisli所写的,查看spring会话可能是最简单的解决方案(请参阅)

我正在我的一个项目中使用它,它工作得非常好,但是您必须知道,现在默认的序列化方案是“ObjecStream”,这是常规的java序列化。因此,您不能在要放入会话的服务器上使用不同版本的类。这将导致反序列化异常。但是我很确定,如果使用tomcat/jboss7glassfish/等集群,同样的问题也会发生


如果您想在服务部署中获得自由,可以使用其中一种集群解决方案,只存储必要的最少信息,如sessionID,然后使用redis或任何您喜欢的DB解决方案,以更“类进化”友好的格式(如json)存储会话相关数据。这会为您带来更多的工作,但也会带来更多的灵活性。

有几种方法可以解决这个问题。Tomcat支持集群,请参见: 但正如Dimitrisli所写的,查看spring会话可能是最简单的解决方案(请参阅)

我正在我的一个项目中使用它,它工作得非常好,但是您必须知道,现在默认的序列化方案是“ObjecStream”,这是常规的java序列化。因此,您不能在要放入会话的服务器上使用不同版本的类。这将导致反序列化异常。但是我很确定,如果使用tomcat/jboss7glassfish/等集群,同样的问题也会发生

如果您想在服务部署中获得自由,可以使用其中一种集群解决方案,只存储必要的最少信息,如sessionID,然后使用redis或任何您喜欢的DB解决方案,以更“类进化”友好的格式(如json)存储会话相关数据。这会为您带来更多的工作,但也会带来更多的灵活性。

值得一看。单点登录。查看可能值得。单一登录。