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.