gpt4 book ai didi

java - 如何在不将包含类的JAR 放入/lib/ext 中的情况下跨多个WAR 在Tomcat 上缓存对象?

转载 作者:行者123 更新时间:2023-11-28 23:21:23 25 4
gpt4 key购买 nike

如何在 Web 容器(服务器,例如 Tomcat)上的多个 WAR 中包含二进制相同的 JAR 中的类实例在服务器范围内缓存(缓存范围跨越该服务器上的多个 WAR)?

我想跨 WAR 缓存应用程序数据,因为数据对它们是通用的。 (这是一个门户项目,在不同的“ View ”之间共享公共(public)数据非常有用,这些“ View ”实现为不同的 portlet,部署为不同的 WAR,并且使用 Java 对象缓存比使用中央数据保存服务更快、更简单。 )

这可能吗?或者是否需要将这样的 JAR 放在公共(public)父类加载器访问的路径上,例如/lib/ext ?

参见:Java, Classpath, Classloading => Multiple Versions of the same jar/project

参见:How does class loading work when the same class exists in different applications on the same server?

参见:cast across classloader?

参见:What is a serialVersionUID and why should I use it?

最佳答案

是的,最好的选择是将类放在作为两个应用程序父级的类加载器中。如果 lib/ext 是指 JAVA_HOME/lib/ext,那么我不建议这样做。相反,您应该将它们放在 CATALINA_HOME/lib 目录中。查看Shared Library Files文档部分,链接到 Class Loader HOW-TO文档。

关于java - 如何在不将包含类的JAR 放入/lib/ext 中的情况下跨多个WAR 在Tomcat 上缓存对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com