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.
Sorry - I didn't intend to post this on the Dev Forum...I will mark as answered.