国际化上下文:管理策略
国际化策略规定 Java™ EE 应用程序组件或其主管容器如何在组件调用时管理国际化上下文。以下国际化上下文管理策略适用于所有组件类型:应用程序管理的国际化 (AMI) 和容器管理的国际化 (CMI)。
- 国际化类型
- 容器国际化属性
此服务为每个应用程序组件类型定义缺省值,或者隐式地定义国际化策略。开发时,组装程序可通过明确配置国际化类型,并可选地配置容器国际化属性,以覆盖服务器组件类型的缺省策略。组装期间配置的策略显示在应用程序的部署描述符中。
所有组件具有国际化类型,表明它是 AMI 还是 CMI;即,组件是在应用程序管理的国际化策略,还是容器管理的国际化策略下部署。应用程序组装程序为 servlet、会话 Bean 和消息驱动的 Bean 设置国际化类型。实体 Bean 隐式的 CMI,而 EJB 客户机隐式的 AMI;否则两者都不能配置。
对于 CMI servlet 和企业 Bean,可指定可选容器国际化属性,以表明容器将哪个调用国际化上下文的范围设定为服务或业务方法。CMI 服务或业务方法调用可在调用者进程的上下文、服务器 JVM 的缺省上下文,或者属性中所指定的定制上下文下运行。组装者可为 Web 模块中的每个 CMI servlet disjoint 集合指定一个容器国际化属性,或者为 EJB 模块内每个 CMI Bean 业务方法的 disjoint 集合指定一个属性。容器国际化属性可与多个方法关联,但是方法不能与多个属性关联。
[<Internationalization Type>,<Container Internationalization Attribute>]
存在多个部署描述符看上去缺少策略信息的情况,例如:EJB 客户机应用程序没有可配置的国际化策略设置;AMI 组件没有容器国际化属性;以及您无须为 CMI 组件指定容器国际化属性。当服务无法从格式正确的部署描述符获得明确的国际化类型和容器属性设置时,它将相应的设置隐含地插入此策略。
- 在部署描述符中缺少所有国际化策略信息的 Servlets(服务)和 EJB 业务方法在策略 [CMI,RunAsCaller] 下隐含运行。
- 在部署描述符中缺少容器国际化属性的 CMI servlet 和业务方法在策略 [CMI,RunAsCaller] 下隐含运行。
- AMI servlet 和业务方法总是在部署描述符中缺少容器国际化属性,但是在逻辑策略 [AMI,RunAsServer] 下隐含运行。
- EJB 客户机在部署描述符中总是缺少国际化策略信息。通过定义,EJB 客户机隐含作为 AMI 类型,并在 JVM 的调用上下文下运行;它们在逻辑策略 [AMI,RunAsServer] 下运行。
无法配置 EJB 客户机和 HTTP 客户机的国际化策略;然后,HTTP 客户机在主管 Web 浏览器的语言优先级设置下运行。这些设置在大多数 Web 浏览器的选项对话下可配置。有关详细信息,请参阅 Web 浏览器文档。