我想为企业 Java 系统(JSP、Servlet、EJB)开发一个可以以静态方式(静态方法)使用的实用程序类。它包含一些能够访问HttpSession
用户对象并检索一些已经存储为属性的有用信息(例如当前用户ID)的方法。
你们中的一些人可能想知道为什么我需要这样的东西,而我可以简单地将HttpSession
对象传递到任何地方。实际上,我正在开发一个遗留的 Java EE 5.0 系统,并且一些实用程序类(不是 Servlet、JSP 或 EJB)无法访问该HttpSession
对象。
是否可以实现这样的实用程序类?我/你应该在这里考虑一些限制:
- servlet/JSP 托管在与托管 EJB 不同的机器上。
- 系统在 Weblogic 10.3.0 上运行。
- 在 weblogic 上,有许多服务器(托管 servlet/JSP)并且它们在同一个集群下。EJB 服务器也是如此。
- 如果我在实用程序类中声明一些静态
Collection
,它会起作用吗?或者由于多个类加载器和多个 JVM 可能会有不止一个副本? - 也许我应该使用共享文件或共享数据库来实现它?我什至怎么能跟踪哪个用户调用了实用程序类?也许跟踪线程?或者可能与交易有关的东西?