3 Replies Latest reply: Mar 23, 2012 4:47 PM by David Martin RSS

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

    David Martin Newbie

      Hello,

       

      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

      ManagementAction.breadCrumbStackView

              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

      eptor.java:61)

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

      Context.java:68)

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

      gedEntityInterceptor.java:48)

       

      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:

       

      @Scope(ScopeType.CONVERSATION)

      @Name("scoringManagementAction")

      @Restrict("#{identity.loggedIn}")

      public class ScoringManagementAction implements Serializable, ScoringManager, Mutable {

       

          private static final long serialVersionUID = -1266492462210968391L;

       

          @Logger

          private Log log;

       

      ....

      ....

       

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

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

          private BreadCrumbStackView breadCrumbStackView;

       

      ....

      ....

       

          @Override

          public boolean clearDirty() {

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

              this.scoringView.setDirty(false);

              return isDirtySet;

          }

       

      Thanks for your help.