[jboss-user] [JBoss Seam] - Seam Managed ActionHandler

jgeraert do-not-reply at jboss.com
Mon Oct 8 05:26:59 EDT 2007


Hello all,

I'm trying to create a seam managed Action Handler for a jbpm node ( not a task node ). I want to inject a variable into this action which is outjected in a another SLSB. 


My process definition:


  | 
  | <?xml version="1.0"?>
  | <process-definition name="inkless">
  |    <start-state name="start">
  |       <transition name="" to="node1"></transition>
  |    </start-state>
  |    <end-state name="end1"></end-state>
  |    <node name="node1">
  | 		<action name="action1" expression="#{bar.foo}"/>
  |       <transition name="" to="end1"></transition>
  | 
  |    </node>
  | 
  | </process-definition>
  | 
  | 

The code that creates the process and Outjects a Context variable:


  | 
  | @Stateless
  | @Name("inklessProcessManager")
  | @Interceptors(SeamInterceptor.class)
  | public class InklessProcessManagerImpl implements InklessProcessManager {
  | 
  | 	@Out(scope=ScopeType.BUSINESS_PROCESS, value="foo") Integer someThing;
  | 
  | 	@CreateProcess(definition="inkless")
  | 	public void startProcess() {
  | 		someThing=new Integer(5);
  | 	}
  | 
  | }
  | 
  | 

And now my actionhandler which is called in the process definition:


  | 
  | @Stateless
  | @Name("bar")
  | @Interceptors(SeamInterceptor.class)
  | public class BlahBlahActionHandler implements IActionHandler {
  | 
  | 	/* (non-Javadoc)
  | 	 * @see com.melexis.inkless.IActionHandler#foo()
  | 	 */
  | 	@In(value="foo", scope=ScopeType.BUSINESS_PROCESS) Integer foe;
  | 
  | 
  | 	@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
  | 	public void foo(){
  | 		System.out.println("Foooooooooooooo");
  | 		System.out.println(foe);
  | 	}
  | 
  | }
  | 
  | 

And finally the exception i receive:


  | 
  | Caused by: javax.ejb.EJBException: org.jboss.seam.RequiredException: In attribute requires non-null value: bar.foo
  | 	at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
  | 	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
  | 	at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
  | 	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  | 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  | 	at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:214)
  | 	at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:184)
  | 	at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:81)
  | 	at $Proxy101.foo(Unknown Source)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
  | 	at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
  | 	at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)
  | 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
  | 	at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
  | 	at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)
  | 	at org.javassist.tmp.java.lang.Object_$$_javassist_2.foo(Object_$$_javassist_2.java)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
  | 	... 170 more
  | 
  | 

I'm just starting out with jboss seam so it might be my own incompetence, but i think i understood the documentation correctly. 

Can someone point out what i'm doing wrong? Thank you.


Best regards,


Jo


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4092453#4092453

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4092453



More information about the jboss-user mailing list