[JBoss jBPM] - Problem with WS in jBPM
by rodosa
Hello!!
I've a problem. Some moths ago, I made a prototype using WS, Jboss 4.0.5 and Jbpm 3.2.2. It worked!!! It consisted in that an app (that resides in Jboss 4.0.5) invoked to a WS that was in jbpm 3.2.2.
Now, I want to do the same, but it doesn't work. I don't know why don't work. The main reason that I could imaginate is that I changed the jdk version. Now I'm using jdk 6.0 instead jdk 1.5.
The problem is:
- The WS seems that is desployed fine because I can access to the wsdl file in :
http://192.168.0.130:18080/Requirements-JbpmWebServices/JbpmWS?wsdl
But if I put into the navegator ---> http://192.168.0.130:18080/Requirements-JbpmWebServices/JbpmWS
It fails and the following error is shown:
| org.jboss.util.NotImplementedException: HTTP GET not supported
| org.jboss.ws.server.ServiceEndpointServlet.doGet(ServiceEndpointServlet.java:95)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
On the other hand, when I run my app and I try to call to my simply web service this is what occurs:
A) At client side
Retrieving the port from the following service: com.ideit.modules.cmmi.jbpm.requirements.ws.JbpmWS_Service@1362012
| Invoking the sayHello operation on the port.
| Exception in thread "main" javax.xml.ws.WebServiceException: No Content-type in the header!
| at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:143)
| at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:74)
| at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:559)
| at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:518)
| at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:503)
| at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:400)
| at com.sun.xml.ws.client.Stub.process(Stub.java:235)
| at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:120)
| at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:230)
| at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:210)
| at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:103)
| at $Proxy25.hola(Unknown Source)
| at client.JbpmWSClient.main(JbpmWSClient.java:22)
B) At server side
| 12:43:17,203 ERROR [[JbpmWS]] Servlet.service() for servlet JbpmWS threw exception
| java.lang.NoClassDefFoundError: Could not initialize class org.jboss.ws.soap.MessageFactoryImpl
| at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:211)
| at org.jboss.ws.server.ServiceEndpointServlet.doPost(ServiceEndpointServlet.java:120)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:619)
|
Any ideas???? I suspect that is a problem with jdk or loader libraries, but .. I don't know how to fix it because I have the jbossws-client.jar that contains org.jboss.ws.soap.MessageFactoryImpl in client folder of jboss.
Thanks!!!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196523#4196523
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196523
17 years, 3 months
[JBoss jBPM] - Re: process variable not persisted when changed in sub proce
by kukeltje
Jan,
- I don't see the variable 'subProcessResult' in the subprocess. Is it set via the api somewhere?
- I only used variable passing with mapped-names (different name in the subprocess). Not doable with a lot of processvariables, I know
- The variable subProcessResult is the same for all subprocesses. I would change that to prevent e.g. concurency issues
So I would have try something like this:
| <process-state name="Ontvankelijkheidstoets">
| <description>
| In deze fase wordt bepaald of de aangeleverde gegevens compleet en bruikbaar zijn. Eventueel word
| t er gewacht op documenten die middels de post worden aangeleverd.
| </description>
| <sub-process name="preConditionCheckUL" binding="late"/>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="pasportSendMethod" access="read" />
| <variable name="pooledActors" access="read" />
| <variable name="OntvankelijkheidstoetsResult" access="read,write" mapped-name="subProcessResult" />
| <transition to="Resultaat OT" name="success"/>
| </process-state>
|
btw, I you make a small, minimal unit test with embedded processdefinition as a string and the decisionhandler as innerclass, I can test it here. The jBPM unittest for this works, but it also uses the mapped-name
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196516#4196516
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196516
17 years, 3 months
[JBoss jBPM] - Problem with a decision node in a fork, join construct.
by janvandeklok
Hello,
I'm using jbpm 3.3.0. and we noticed a problem with the following process construction:
a fork that splits into 3 decision nodes, these decision nodes transition to either a task node or directly toi the join.
Transitions from the decision to the task node are OK, transitions from the decision node directly to the join will throw a StaleObject Exception when trying to update a token for the fork.
We use Oracle 10 as the database.
Is it a bug or what ??
any help is appreciated!
Jan van de Klok
Below is the processdefinition used:
| <process-definition xmlns="" name="preConditionCheckUL">
|
| <start-state name="start-state1">
| <transition to="fork1"></transition>
| </start-state>
|
| <task-node name="Controleer student gegevens">
| <description>
| De verzamelde gegevens van student worden gecontroleerd
| </description>
| <task name="Invoer resultaat controle student gegevens">
| <description>
| Taak voor controle juistheid gegevens en invoer resultaat
| </description>
| <assignment pooled-actors="#{actor.groupActorIds}"></assignment>
| </task>
| <transition to="end-state1"></transition>
| </task-node>
|
| <fork name="fork1">
| <transition to="paspoort per post" name="to reg Pasport"></transition>
| <transition to="diploma per post" name="to Registratie ontvangst diploma"></transition>
| <transition to="inschrijfgeld vereist" name="to Registratie ontvangst inschrijfgeld"></transition>
| </fork>
|
| <task-node name="Registratie ontvangst paspoort">
| <description>
| Registratie ontvangst paspoort #{studentStatus.actorId}
| </description>
| <task name="Registreren ontvangst paspoort">
| <description>
| Registreren dat kopie paspoort is ontvangen per post #{studentStatus.actorId}
| </description>
| <assignment pooled-actors="#{studentStatus.pooledActors}"></assignment>
| </task>
| <transition to="join1"></transition>
| </task-node>
|
| <task-node name="Registratie ontvangst diploma">
| <description>
| Registratie ontvangst diploma
| </description>
| <task name="Registreren ontvangst diploma">
| <description>
| Registreren dat kopie diploma is ontvangen per post voor #{studentStatus.actorId}
| </description>
| <assignment pooled-actors="#{studentStatus.pooledActors}"></assignment>
| </task>
| <transition to="join1" name="from reg diploma"></transition>
| </task-node>
|
| <task-node name="Registratie ontvangst inschrijfgeld">
| <description>
| Registratie ontvangst inschrijfgeld voor #{studentStatus.actorId}
| </description>
| <task name="Registreren ontvangst inschrijfgeld">
| <description>
| Registreren dat inschrijfgeld is betaald voor #{studentStatus.actorId}
| </description>
| <assignment pooled-actors="#{studentStatus.pooledActors}"></assignment>
| </task>
| <transition to="join1" name="from inschrijfgeld"></transition>
| </task-node>
|
| <join name="join1">
| <transition to="Controleer student gegevens"></transition>
| </join>
|
| <decision name="paspoort per post">
| <handler class="nl.chronotech.ibis.task.PasportByPostDecision"/>
| <transition to="Registratie ontvangst paspoort" name="byPost"></transition>
| <transition to="join1" name="upload"></transition>
| </decision>
|
| <decision name="diploma per post">
| <handler class="nl.chronotech.ibis.task.DiplomaByPostDecision"/>
| <transition to="Registratie ontvangst diploma" name="byPost"></transition>
| <transition to="join1" name="upload"></transition>
| </decision>
|
| <decision name="inschrijfgeld vereist" expression="#{chosenInstitution eq 'Universiteit Leiden'}">
| <transition to="Registratie ontvangst inschrijfgeld" name="true"></transition>
| <transition to="join1" name="false"></transition>
| </decision>
|
| <end-state name="end-state1">
| </end-state>
|
| </process-definition>
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196475#4196475
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196475
17 years, 3 months
[JBoss jBPM] - process variable not persisted when changed in sub process
by janvandeklok
Hello.
We have installed JBPM 3.3.0 for evaluation purposes.
During testing we ran into some problems when using subprocesses.
According to the documentation, a variable defined in a subprocess should be saved in the "main"process when the subprocess ended.
This does not seems to be the case in this version.
Is there somthing we overlooked or is this a bug?
After the process-state "Ontvankelijkheidstoets" has ended, the variable "subProcessResult" is on the process instance is null despite the fact that this variable has been set in the sub process, the decision node "Resultaat OT" however does the correct thing !
| public String decide(ExecutionContext arg0) throws Exception
| {
| System.out.println(" Decide which flow to follow depending on process decision node.");
| String result = (String) arg0.getVariable("subProcessResult");
| if (Constants.SUCCESS.equalsIgnoreCase(result))
| {
| System.out.println("////// subProcess exection was succesfull, keep following the yellowbrick road");
| return Constants.SUCCESS;
| } else if (Constants.FAIL.equalsIgnoreCase(result))
| {
| System.out.println("////// subProcess exection was no good, FAIL");
| return Constants.FAIL;
| } else {
| throw new Exception("Unexpected value in subProcessResult variable : " + result);
| }
| }
Can someone tell me what is wrong? Is it a bug or am I doing something wrong??
Any help will be greatly appreciated!!
Jan van de Klok
By the way: In version 3.2.3 the decision node "Resultaat OT" does not react on changes of the variable at all.
This is (a part of) the process definition.
<process-definition xmlns="" name="studentRegistrationUL" >
|
| <start-state name="start-student-registratie">
| <transition to="Invoer registratie gegevens door Student"></transition>
| </start-state>
|
| <task-node name="Invoer registratie gegevens door Student">
| <description>
| Student voert zijn persoons-, adres-, vooropleidinggegevens in en eventuele andere gegevens welke nodig zijn voor de instelling in kwestie.
| </description>
| <task name="Invoer persoonsgegevens">
| <description>
| Voer persoonsgegevens zoals naam, geboorte datum, e.d. in
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Invoer woonadres">
| <description>
| Voer gegevens van het huidige woonadres in. Het woonadres is je officieel verblijfsplaats (waar je bent ingeschreven).
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Opsturen paspoort">
| <description>
| Stuur kopie paspoort op of upload kopie van je paspoort
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Invoer vooropleiding">
| <description>
| Vooropleidingen invoeren en sturen of uploaden van een kopie van het diploma
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Inschrijfgeld betalen">
| <description>
| Inschrijfgeld overmaken naar de instelling
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <task name="Invoer taalvaardigheid">
| <description>
| Invoeren van de taalvaardigheid
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| </task>
| <transition to="Verstuur registratie gegevens naar instelling"></transition>
| </task-node>
|
| <task-node name="Verstuur registratie gegevens naar instelling">
| <description>
| Student stuurt zijn registratie gegevens naar de instelling en start daarmee het instellings registratie process
| </description>
| <task name="Versturen registratie gegevens">
| <description>
| Verstuur de ingevoerde registratie gegevens naar de instelling #{chosenInstitution}
| </description>
| <assignment actor-id="#{actor.id}"></assignment>
| <controller></controller>
| </task>
| <transition to="Ontvankelijkheidstoets"></transition>
| </task-node>
|
| <process-state name="Ontvankelijkheidstoets">
| <description>
| In deze fase wordt bepaald of de aangeleverde gegevens compleet en bruikbaar zijn. Eventueel wordt er gewacht op documenten die middels de post worden aangeleverd.
| </description>
| <sub-process name="preConditionCheckUL" binding="late"/>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="pasportSendMethod" access="read" />
| <variable name="pooledActors" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat OT" name="success"></transition>
| </process-state>
|
| <process-state name="Diploma waardering">
| <description>
| De aangeleverde vooropleidinggegevens en kopieen van diploma s worden getoetst en beoordeeld of deze volledig en voldoende zijn.
| </description>
| <sub-process name="diplomaCheck" binding="late"></sub-process>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat DW"></transition>
| </process-state>
|
| <process-state name="Beoordeling toelatingscommissie">
| <description>
| Een commissie bepaald of de student toelaatbaar is (voor Masters studenten).
| </description>
| <sub-process name="acceptanceCommitee" binding="late"></sub-process>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat BT"></transition>
| </process-state>
|
| <process-state name="Toelaten">
| <description>
| Medewerker controleert alle tot dan verzamelde informatie en besluit wel of geen toelating tot het inschrijfproces.
| </description>
| <sub-process name="acceptanceCheck" binding="late"></sub-process>
| <variable name="chosenInstitution" access="read" />
| <variable name="chosenEducation" access="read" />
| <variable name="studentId" access="read" />
| <variable name="eduType" access="read" />
| <variable name="regYear" access="read" />
| <variable name="regFirstYear" access="read" />
| <variable name="subProcessResult" access="read,write" />
| <transition to="Resultaat T"></transition>
| </process-state>
|
| <decision name="Resultaat OT">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Niet ontvankelijk" name="fail"></transition>
| <transition to="Diploma waardering" name="success"></transition>
| </decision>
|
| <decision name="Resultaat DW">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Beoordeling toelatingscommissie" name="success"></transition>
| <transition to="Diploma voldoet niet" name="fail"></transition>
| </decision>
|
| <decision name="Resultaat BT">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Afgewezen" name="fail"></transition>
| <transition to="Toelaten" name="success"></transition>
| </decision>
|
| <decision name="Resultaat T">
| <handler class="nl.chronotech.ibis.task.SubProcessDecision"/>
| <transition to="Afgewezen" name="fail"></transition>
| <transition to="Toegelaten" name="success"></transition>
| </decision>
|
| <end-state name="Toegelaten">
| <description>
| Gefeliciteerd de instelling heeft besloten dat u toelaatbaar bent tot de gekozen opleiding. U kunt nu verder door het indienen van een verzoek tot inschrijven.
|
| </description>
| </end-state>
|
| <end-state name="Afgewezen">
| <description>
| De instelling heeft de registratie gegevens beoordeeld en besloten dat deze geen toegang geven tot de gekozen opleiding.
| </description>
| </end-state>
|
| <end-state name="Niet ontvankelijk">
| <description>
| Een medewerker van de instelling heeft bepaald dat de registratie aanvraag niet ontvankelijk is. Zie de toelichting voor nadere informatie met betrekking tot de reden.
| </description>
| </end-state>
|
| <end-state name="Diploma voldoet niet">
| <description>
| Een medewerker van de instelling heeft de opgestuurde diploma's beoordeeld en besloten dat deze geen toegang geven tot de gekozen opleiding. Voor meer informatie zie mededelingen.
| </description>
| </end-state>
|
|
| </process-definition>
<process-definition xmlns="" name="preConditionCheckUL">
|
| <start-state name="start-state1">
| <transition to="3fork"></transition>
| </start-state>
|
| <task-node name="Controleer student gegevens">
| <description>
| De verzamelde gegevens van student worden gecontroleerd
| </description>
| <task name="Invoer resultaat controle student gegevens">
| <description>
| Taak voor controle juistheid gegevens en invoer resultaat
| </description>
| <assignment pooled-actors="#{actor.groupActorIds}"></assignment>
| </task>
| <transition to="end-state1"></transition>
| </task-node>
|
| <fork name="3fork">
| <transition to="Registratie ontvangst paspoort" name="to reg Pasport">
| </transition>
| <transition to="Registratie ontvangst diploma" name="to Registratie ontvangst diploma">
| </transition>
| <transition to="Registratie ontvangst inschrijfgeld" name="to Registratie ontvangst inschrijfgeld">
| </transition>
| </fork>
|
| <task-node name="Registratie ontvangst paspoort">
| <description>
| Registratie ontvangst paspoort #{studentStatus.actorId}
| </description>
| <task name="Registreren ontvangst paspoort">
| <description>
| Registreren dat kopie paspoort is ontvangen per post #{studentStatus.actorId}
| </description>
| <assignment pooled-actors="#{contextUtil.processPooledActors}"></assignment>
| </task>
| <transition to="join1"></transition>
| </task-node>
|
| <task-node name="Registratie ontvangst diploma">
| <description>
| Registratie ontvangst diploma
| </description>
| <task name="Registreren ontvangst diploma">
| <description>
| Registreren dat kopie diploma is ontvangen per post voor #{studentStatus.actorId}
| </description>
| <assignment pooled-actors="#{contextUtil.processPooledActors}"></assignment>
| </task>
| <transition to="join1" name="from reg diploma"></transition>
| </task-node>
|
| <task-node name="Registratie ontvangst inschrijfgeld">
| <description>
| Registratie ontvangst inschrijfgeld voor #{studentStatus.actorId}
| </description>
| <task name="Registreren ontvangst inschrijfgeld">
| <description>
| Registreren dat inschrijfgeld is betaald voor #{studentStatus.actorId}
| </description>
| <assignment pooled-actors="#{contextUtil.processPooledActors}"></assignment>
| </task>
| <transition to="join1" name="from inschrijfgeld"></transition>
| </task-node>
|
| <join name="join1">
| <transition to="Controleer student gegevens"></transition>
| </join>
|
| <end-state name="end-state1">
| </end-state>
|
| </process-definition>
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4196474#4196474
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4196474
17 years, 3 months