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



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.