3 Replies Latest reply on Mar 23, 2012 4:47 PM by dmartfw1

    SEAM application  - Clustering works for SFSB annotated with @Clustered but does not work for Non-SFSB




      Please forgive me if this is the wrong place to post this.  I have posted this on the SEAM forum, but no luck there.


      Just curious if anyone can help me out with this issue:


      I've created a Seam Component that has a scope of Conversation and in it I am injecting a Seam component that has a scope of Session.  I get the following exception when the component is invoked (via an el expression binding):


      08:07:36,819 WARN  [/osrs] Failed to replicate session sqOk+VEjdw4H3NXWuqrIzw__

      org.jboss.seam.RequiredException: @In attribute requires non-null value: scoring


              at org.jboss.seam.Component.getValueToInject(Component.java:2361)

              at org.jboss.seam.Component.injectAttributes(Component.java:1739)

              at org.jboss.seam.Component.inject(Component.java:1557)

              at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterc


              at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation


              at org.jboss.seam.persistence.ManagedEntityInterceptor.aroundInvoke(Mana



      The application is configured for clustering and at startup looks good:


      08:05:44,670 INFO  [DefaultPartition] Number of cluster members: 1

      08:05:44,671 INFO  [DefaultPartition] Other members: 0


      If I convert the same component over to a SFSB and include the @Clustered annotation, everything work fine.


      This is all happening locally in my development environment.  I am using JBoss AS 5.1 and Seam 2.2.2.Final.


      Here is a snippet from the Seam Component that is failing:





      public class ScoringManagementAction implements Serializable, ScoringManager, Mutable {


          private static final long serialVersionUID = -1266492462210968391L;



          private Log log;





          @In(required = true, scope = ScopeType.SESSION)

          @Out(required = true, scope = ScopeType.SESSION)

          private BreadCrumbStackView breadCrumbStackView;






          public boolean clearDirty() {

              final boolean isDirtySet = this.scoringView.isDirty();


              return isDirtySet;



      Thanks for your help.