Example: Internationalization context in a session bean
The following code example illustrates how to perform a localized operation using the internationalization service within a session bean or Web service-enabled session bean.
... //------------------------------------------------------------ // INTERNATIONALIZATION SERVICE: Imports. //------------------------------------------------------------ import com.ibm.websphere.i18n.context.UserInternationalization; import com.ibm.websphere.i18n.context.Internationalization; import com.ibm.websphere.i18n.context.InvocationInternationalization; import javax.naming.InitialContext; import javax.naming.Context; import javax.naming.NamingException; import java.util.Locale; /** * This is a stateless Session Bean Class */ public class J2EESessionBean implements SessionBean { //------------------------------------------------------------ // INTERNATIONALIZATION SERVICE: API references. //------------------------------------------------------------ protected UserInternationalization userI18n = null; protected InvocationInternationalization invI18n = null; //------------------------------------------------------------ // INTERNATIONALIZATION SERVICE: JNDI name. //------------------------------------------------------------ public static final String UserI18NUrl = "java:comp/websphere/UserInternationalization"; ... /** * Obtain the appropriate internationalization interface * reference in this method. * @param ctx javax.ejb.SessionContext */ public void setSessionContext(javax.ejb.SessionContext ctx) { //------------------------------------------------------------ // INTERNATIONALIZATION SERVICE: Resolve the API. //------------------------------------------------------------ try { Context initialContext = new InitialContext(); userI18n = (UserInternationalization)initialContext.lookup( UserI18NUrl); invI18n = userI18n.getInvocationInternationalization(); } catch (NamingException ne) { log("Error: Cannot resolve UserInternationalization: Exception: " + ne); } catch (IllegalStateException ise) { log("Error: UserInternationalization is not available: " + ise); } } // setSessionContext /** * Set up resource bundle using I18n Service */ public void setResourceBundle() { Locale invLocale = null; //------------------------------------------------------------ // INTERNATIONALIZATION SERVICE: Get invocation context. //------------------------------------------------------------ try { invLocale = invI18n.getLocale(); } catch (IllegalStateException ise) { log ("An anomaly occurred while accessing Invocation context: " + ise ); } try { Resources.setResourceBundle(invLocale); // Class Resources provides support for retrieving messages from // the resource bundle(s). See Currency Exchange sample source code. } catch (Exception e) { log("Error: Exception occurred while setting resource bundle: " + e); } } // setResourceBundle /** * Pass message keys to get the localized texts * @return java.lang.String [] * @param key java.lang.String [] */ public String[] getMsgs(String[] key) { setResourceBundle(); return Resources.getMsgs(key); } ... void log(String s) { System.out.println(((s == null) ? ";null" : s)); } } // CLASS J2EESessionBean
Related Tasks
Using the internationalization context API