JBPM: task process id may not be null
uesker Oct 6, 2010 1:30 PMHi!
I resolved to strart a new thread because the previous was too confuse.
I´m working with JBPM and when I access a specific page I have to do litle system processing with values comes from a form. So I´m trying to do that with ajax request.
Here is a one case that exemplifies the problem.
the page.xml
<end-conversation/> <param name="taskId"/> <action execute="#{secondaryQuestionAction.startFillSecondaryQuestion}"/>
the specific page, that contains a button that get the value from text area and add it in a data table
<rich:panel> <f:facet name="header">#{messages['srprocess.fillsecondaryquestion.page.title']}</f:facet> <h:outputText value="#{messages['srprocess.fillsecondaryquestion.page.description']}"/><br/> <rich:spacer height="20px"/> <s:decorate id="questaoSecundaria" template="/layout/edit.xhtml"> <ui:define name="label">#{messages['srprocess.fillsecondaryquestion.page.question']}</ui:define> <h:inputTextarea cols="100" rows="5" value="#{secondaryQuestion.question}"/> </s:decorate> <a4j:commandButton value="#{messages['command.add']}" actionListener="#{secondaryQuestionAction.addSecondaryQuestion}" reRender="tabelaQuestoes"> </a4j:commandButton> <a4j:outputPanel id="tabelaQuestoes" rendered="#{secondaryQuestionAction.exibeTabelaQuestoes}"> <h:outputText value="#{messages['srprocess.fillsecondaryquestion.questionstable.description']}"/> <rich:dataTable id="tableSecondaryQuestion" value="#{secondaryQuestionAction.secondaryQuestionList}" var="q"> <rich:column> #{q.question} </rich:column> </rich:dataTable> </a4j:outputPanel> <div style="clear: both" /> </rich:panel>
And finnaly, the bean
@Name("secondaryQuestionAction") @Scope(ScopeType.PAGE) public class SecondaryQuestionAction implements Serializable { private static final long serialVersionUID = 8394705048656015853L; @In private StatusMessages statusMessages; @In(required=false) @Out(scope=ScopeType.BUSINESS_PROCESS, required=false) protected SRProtocol srProtocol; @In private SecondaryQuestion secondaryQuestion; private List<SecondaryQuestion> secondaryQuestionList; private boolean exibeTabelaQuestoes; public boolean isExibeTabelaQuestoes() { return exibeTabelaQuestoes; } public void setExibeTabelaQuestoes(boolean exibeTabelaQuestoes) { this.exibeTabelaQuestoes = exibeTabelaQuestoes; } public List<SecondaryQuestion> getSecondaryQuestionList() { return secondaryQuestionList; } public void setSecondaryQuestionList( List<SecondaryQuestion> secondaryQuestionList) { this.secondaryQuestionList = secondaryQuestionList; } @BeginTask public void startFillSecondaryQuestion() { if (secondaryQuestionList == null) { secondaryQuestionList = new ArrayList<SecondaryQuestion>(); } statusMessages.addFromResourceBundle("task.initiated.message"); } @EndTask public String endFillSecondaryQuestion() { if (srProtocol != null) { srProtocol.setSecundaryQuestionList(secondaryQuestionList); } statusMessages.addFromResourceBundle("srprocess.fillsecondaryquestion.page.success"); return "/listarTarefas.xhtml"; } public void addSecondaryQuestion(ActionEvent event) { if (secondaryQuestion != null) { secondaryQuestionList.add(secondaryQuestion); secondaryQuestion = null; } } }
When I press the button that call addSecondaryQuestion method, an exception is thrown with message
Caused by java.lang.IllegalStateException with message: "task/process id may not be null" org.jboss.seam.bpm.BusinessProcessInterceptor.getProcessOrTaskId(BusinessProcessInterceptor.java:161) org.jboss.seam.bpm.BusinessProcessInterceptor.beforeInvocation(BusinessProcessInterceptor.java:69) org.jboss.seam.bpm.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:45) org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185) org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103) br.ufrj.cos.ese.configuradorrs.session.researchQuestion.SecondaryQuestionAction_$$_javassist_seam_14.startFillSecondaryQuestion(SecondaryQuestionAction_$$_javassist_seam_14.java) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
I´m was wondering why the task Id was lost, even with PAGE scope. So, how can I solve this?
Thanks!