1 2 Previous Next 22 Replies Latest reply on Jun 26, 2011 11:48 PM by roliveira.ricardo.martinelli.oliveira.gmail.com Go to original post
      • 15. Re: Seam International Module
        kenfinni

        I'll be looking into this in greater detail over the next couple of days.


        To assist in resolving the problem, are you able to create an Arquillian test case that replicates it?  That would make ensuring it's solved and is never broken again easier.


        Also, should have asked earlier, but which server is your application running on?


        Thanks
        Ken

        • 16. Re: Seam International Module
          elfuhrer

          Hi Ken,
          I'll create a test case for that shortly and provided to you guys. Thanks for the assistance.


          Cheers,
          Fady

          • 17. Re: Seam International Module
            kenfinni

            Hi Fady,


            I haven't had any luck in re-creating your problem yet.


            Have you had an opportunity to create an Arquillian test case that replicates the problem?


            Thanks
            Ken

            • 18. Re: Seam International Module
              ssachtleben.ssachtleben.gmail.com

              I have added i18n today on my current project and it works fine.


              My seam-beans.xml:


              <beans xmlns="http://java.sun.com/xml/ns/javaee"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:s="urn:java:ee" 
                 xmlns:rest="urn:java:org.jboss.seam.rest" 
                 xmlns:exceptions="urn:java:org.jboss.seam.rest.exceptions"
                 xmlns:lc="urn:java:org.jboss.seam.international.locale"
                 xmlns:security="urn:java:org.jboss.seam.security"
                 xsi:schemaLocation="
                    http://java.sun.com/xml/ns/javaee 
                    http://docs.jboss.org/cdi/beans_1_0.xsd">          
              
                   <lc:LocaleConfiguration>
                     <lc:supportedLocaleKeys>
                          <s:value>en_US</s:value>
                          <s:value>de_DE</s:value>
                     </lc:supportedLocaleKeys>
                   </lc:LocaleConfiguration> 
              
                  <lc:DefaultLocaleProducer>
                      <lc:defaultLocaleKey>de_DE</lc:defaultLocaleKey>
                  </lc:DefaultLocaleProducer>              
                  
              </beans>



              My locale selector bean:


              @Named("localeSelector") @RequestScoped
              public class LocaleSelectorImpl implements LocaleSelector, Serializable {
              
                   @Inject
                   @Client
                   private Locale locale;
              
                   @Inject
                   @Alter
                   @Client
                   private Event<Locale> event;     
                   
                   @Inject 
                   private List<Locale> supportedLocales;
                   
                   public List<Locale> getSupportedLocales() {
                        return supportedLocales;
                   }          
                   
                   public Locale getLocale() {
                        return locale;
                   }     
                   
                   public void setLocale(Locale locale) {
                        this.locale = locale;
                        event.fire(locale);
                   }     
                   
              }



              My facelet selection:


              <ui:repeat var="locale" value="#{localeSelector.supportedLocales}">
                   <h:commandLink>
                        <f:setPropertyActionListener target="#{localeSelector.locale}" value="#{locale}" />
                        #{locale}&#160;
                   </h:commandLink>
              </ui:repeat>



              I these two files in in src/main/resources:



              messages.properties (german texts)
              messages_en.properties (english texts)



              In my facelets I use this for getting the texts:


              #{bundles.messages['message.Key']}



              When I start my application the language is german which is set by the given default locale key. When I click on a locale in facelet the page will be reloaded and shown the correct texts in given locale. It works fine. Tested with Seam 3.0.0-Final!

              • 19. Re: Seam International Module
                kenfinni

                That's great news Sebastian, glad it's working well.


                Fady, if you can try following Sebastian's example to switch locales that should solve your problem

                • 20. Re: Seam International Module
                  elfuhrer

                  Indeed it works, I have resorted to another approach to fix my setup. After firing the locale event I have set the JSFContext to use the locale explicitly and that sorted things out.


                  FacesContext.getCurrentInstance().getViewRoot().setLocale(currentLocale);



                  But I'm not sure that is the correct approach, the fired event should handle that.


                  • 21. Re: Seam International Module
                    elfuhrer

                    That approach won't work, I got the following exception after trying it:


                    20:48:30,045 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=vfs:///D:/workspace/servers/jboss-6.0.0.Final/server/default/deploy/web.war_WeldBootstrapBean state=Create: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Locale] with qualifiers [@Client] at injection point [[field] @Client @Inject private org.webpatterns.vcs.web.locale.LocaleSelectorImpl.locale]
                            at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:305) [:6.0.0.Final]
                            at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:139) [:6.0.0.Final]
                            at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:162) [:6.0.0.Final]
                            at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:377) [:6.0.0.Final]
                            at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:363) [:6.0.0.Final]
                            at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:388) [:6.0.0.Final]
                            at org.jboss.weld.integration.deployer.env.helpers.BootstrapBean.boot(BootstrapBean.java:92) [:6.0.0.Final]
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]
                            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_26]
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_26]
                            at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_26]
                            at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.0.GA]
                            at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.0.GA]
                            at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
                            at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA]
                            at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA]
                            at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.GA]
                            at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0.Final]
                            at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]
                            at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.deploy(HDScanner.java:240) [:0.2.2]
                            at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.complete(HDScanner.java:192) [:0.2.2]
                            at org.jboss.profileservice.management.TwoPCActionWrapper.doComplete(TwoPCActionWrapper.java:57) [:0.2.2]
                            at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.complete(AbstractTwoPhaseModificationAction.java:74) [:0.2.2]
                            at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:95) [:0.2.2]
                            at org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87) [:0.2.2]
                            at org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234) [:0.2.2]
                            at org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213) [:0.2.2]
                            at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150) [:0.2.2]
                            at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:135) [:0.2.2]
                            at org.jboss.profileservice.deployment.hotdeploy.HDScanner.scan(HDScanner.java:146) [:0.2.2]
                            at org.jboss.profileservice.deployment.hotdeploy.HDScanner.run(HDScanner.java:90) [:0.2.2]
                            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [:1.6.0_26]
                            at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [:1.6.0_26]
                            at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [:1.6.0_26]
                            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [:1.6.0_26]
                            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [:1.6.0_26]
                            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [:1.6.0_26]
                            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
                            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
                            at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]

                    • 22. Re: Seam International Module
                      roliveira.ricardo.martinelli.oliveira.gmail.com

                      Many thanks for the suggestion Sebastian, that approach works in my project!

                      1 2 Previous Next