当前位置: 首页 > 面试题库 >

ThreadLocal在企业应用程序中的用法

伏业
2023-03-14
问题内容

如果我的Web应用程序和ejb应用程序在同一台机器上(在同一JVM上),并且所有ejb调用都是本地调用,那么ThreadLocal在将信息从Web传递到ejb时,使用create会不会出现问题?

如果ejb呼叫是远程的,有什么解决方法?将ThreadLocal信息可以从Web应用程序到EJB应用程序?ThreadLocal在这种情况下建议使用吗?


问题答案:

对于第一个问题,只要在每次调用结束时都删除ThreadLocal变量,就没有问题。这很重要,因为容器(servlet或ejb)通常使用线程池,因此会重用线程,这有两个作用:一个“调用”可能会看到来自上一个调用的线程本地信息,以及如果您从容器中删除应用程序而没有停止JVM有些类可能不会被垃圾回收,因为它们仍被容器线程引用。因此,将数据放在try
/ finally块中的threadlocal中,并在final部分中删除。

这是显示解决问题的一种方法的文章:Web应用程序中的ThreadLocal

对于第二个问题,因为数据是线程本地的,它不会带来远程调用,所以您必须在接口中添加一个参数,在一侧提取线程本地数据,然后在另一侧重新创建它…



 类似资料:
  • 当我尝试使用向导(蚂蚁项目)创建企业应用程序时,我得到以下错误 当然,向导中的所有字段都已填充。但是,单独创建WAR和EJB时没有错误。该错误仅在创建EAR时发生,即使EAR为空。 使用 NetBeans 12.6 Windows 10 OS Glassfish服务器6.2.1 Java17 所有路径均正确拼写,并设置了对目录的读/写权限 屏幕

  • 企业授权应用流程 PDF版下载 企业的系统管理员从管理后台-应用市场发起授权安装第三方应用,安装后如流平台会将授权凭证、授权信息等推送给服务商后台。 详细步骤: 企业管理员授权安装应用 企业的系统管理员从管理后台应用市场发起授权安装第三方应用; 授权成功,回调临时授权码 a) 授权成功后,如流企业平台会回调应用开发信息中填写的安装事件回调地址,GET参数上带上临时授权码auth_code; b)

  • 问题内容: 作为Java新手,我想知道:在世界上所有的语言中,为什么Java经常用于企业应用程序?与其他语言相比,是什么使它如此?在未来的几年中会继续这样吗? 非常感谢您的见解。提前致谢 :) 问题答案: 一句话:图书馆。Java具有大量优秀的库,用于解决开发企业应用程序时需要解决的大多数常见问题。在许多情况下,满足特定需求的选择不止一个好选择,而且这些图书馆通常是在具有商业友好性许可的情况下是免

  • 通过调用API接口,将企业已有应用接入企业微信,并展示在工作台中,供成员使用。 创建应用 1 / 创建新的应用 01/02在【管理后台】>【企业应用】> 【自建应用】中选择【+创建应用】。 02/02完成应用logo/应用名称/应用介绍/可见范围等基本设置。 2 / 接口设置 创建应用后,根据应用将满足的办公场景,选择不同的API接口。目前支持: 发送消息/接收消息/自动回复 网页授权及JS-SD

  • 我正在为一家公司开发iPhone应用程序,他们不想将应用程序发布到应用程序商店。因此,我以299美元注册了iphone企业开发者计划。我的问题是如何在不注册UDID的情况下向公司内部员工分发应用程序?要安装此iPhone应用程序,我是否需要通过邮件向单个应用程序用户发送带有配置文件的修改后的.app文件?我熟悉IOS开发者程序,但iPhone企业开发者程序的设计不允许您将应用发布到应用商店。因此,

  • 我正在使用netbeans 7.2.1和glassfish server 3.1。 我在netbean中创建了企业应用程序项目,并将JSF框架添加到项目的war部分。Netbean没有创建任何web.xml,也没有glassfish-web.xml文件,因为它为Web项目创建。有什么特殊的原因吗?据我所知,企业应用程序项目的war部分与Web项目具有相同的结构...如果不需要web.xml,应该在