Java 提供';服务';在同一服务器上部署的多个EAR之间

Java 提供';服务';在同一服务器上部署的多个EAR之间,java,tomcat,communication,ear,Java,Tomcat,Communication,Ear,情况: 我有多个封装的web应用程序(例如论坛、博客、用户配置文件等),每个应用程序都部署在各自的.ear文件中 这些功能可以作为独立的功能使用,但确实提供了增强的功能(例如,显示该用户的博客条目列表的用户配置文件) 现在,要获得这个条目列表,用户配置文件应用程序必须通过使用服务调用和解析答案从博客应用程序请求它 问:是否有任何技术允许我实现这样一个服务,以便只能从运行在同一台机器上的应用程序实例访问它? (除了使用插座) 好处:如何限制在同一服务器容器中运行的应用程序实例(例如Tomcat实例

情况:

我有多个封装的web应用程序(例如论坛、博客、用户配置文件等),每个应用程序都部署在各自的.ear文件中

这些功能可以作为独立的功能使用,但确实提供了增强的功能(例如,显示该用户的博客条目列表的用户配置文件)

现在,要获得这个条目列表,用户配置文件应用程序必须通过使用服务调用和解析答案从博客应用程序请求它

问:是否有任何技术允许我实现这样一个服务,以便只能从运行在同一台机器上的应用程序实例访问它? (除了使用插座)


好处:如何限制在同一服务器容器中运行的应用程序实例(例如Tomcat实例)?

您可以使用嵌入式消息代理,例如ActiveMQ。使用ActiveMQ,如果只配置vm连接器,则只能从同一vm内访问它。以下是适用于嵌入的文档,但我认为您可以使用它作为基础,将其与您选择的EE容器集成。您很可能也能找到您的容器的文档。

从您编写的内容和对文档的快速浏览来看,如果不修改容器,似乎无法使用此文档。我说的对吗?不知道你说的“修改容器”是什么意思。您需要做的是使资源(队列、主题、连接管理器)在JNDI树中可用。然后,您的代码可以像任何其他资源一样获得引用,例如JDBC数据源。因为Tomcat的JNDI实现是只读的,所以您必须将其作为服务器启动期间读取的服务器配置的一部分来执行。在其他容器中,您可以根据需要在运行时发布资源。