国际化服务
在分布式客户机/服务器环境中,应用程序进程可在不同的机器上运行、针对不同的语言环境进行配置以及符合不同的文化习俗;还可将他们置于不同的地理位置。国际化服务可以帮助您在全球分布式环境中管理应用程序。
要了解语言环境差别对应用程序开发工作的影响,请阅读全球化。
Java™ Platform Enterprise Edition(Java EE)支持运行在具有不同字节存储次序体系结构和代码集的计算机上的应用程序组件。它不提供对运行在具有不同语言环境或时区的计算机上的应用程序组件专用的支持。
在不导致常规技术局限性的情况下,Internationalization service 处理由语言环境和时区不匹配所造成的问题。该服务系统地管理在 EJB 应用程序(包括客户机应用程序、企业 Bean 和 Servlet)的不同组件之间分发国际化上下文。
通过将国际化上下文与应用程序内的每个服务请求相关联,服务进行工作。当客户端组件调用业务方法时,通过获取与当前客户端进程关联的国际化上下文,并将此上下文与出局请求连接,以提出国际化服务。在服务器端,通过将上下文从入局请求拆离,并将它与运行业务方法的服务器端进程管理,有效将上下文的范围设定为业务方法,以再次提出国际化服务。对于 HTTP 请求来说,调用者上下文是根据 HTTP 属性和缺省值构造的。服务以同一方式在后继业务方法调用上传播国际化上下文,其在整个业务方法调用链上分布原始请求上下文。
此范围设定和传播基本操作由国际化上下文管理策略精确定义。国际化策略指定应用程序组件或其主管的 Java EE 容器是否管理国际化上下文。对于容器管理的组件,策略表明容器使用哪个国际化上下文设定此组件上调用的范围。配置为管理国际化上下文以及 EJB 客户机的服务器组件必须使用国际化上下文 API 管理范围设定为其调用的国际化上下文元素。
每个应用程序组件具有缺省策略,其可在组装时为 Servlet 和企业 Bean 覆盖和定制。
运行时,应用程序组件使用国际化上下文 API 获取范围设定为调用的国际化上下文的任何元素。要程序化访问上下文元素,应用程序组件首先解析国际化上下文 API 引用,然后调用相应的 API 方法访问各种上下文元素,如调用者语言环境或调用时区。这些元素可用于对 Java SDK 国际化 API 方法的调用;例如,执行本地化操作:对消息的格式化、配置日期或比较字符串等。