-
1. Re: Consuming a wsdl/web service in jbpm
mccloud Jun 2, 2017 8:41 AM (in response to ashwinner6)The jBPM WebServiceWorkItemHandler uses CXF DynamicClient under the covers to dynamically create a proxy and required classes from the given WSDL. The trick when using complex types/objects is to generate those classes from the WSDL yourself, for example using the "wsconsume.sh" tool provided with JBoss EAP/WildFly/BPM Suite. Something like this:
> wsconsume.sh -kn http://www.webservicex.net/length.asmx?WSDL
The -kn tells the tool to keep the generated sources and not to compile them. Next, you can add these classes to either the jBPM project containing the business process or you can add them to a JAR and have the your project containing the business-process depend on that JAR. The idea is then to instantiate the request object in your business process in a process variable, and map that process variable to the "Parameter" param of the WebServiceWorkItemHandler.
Actually we have an example on how to do this in our Travel Agency demo: GitHub - jbossdemocentral/bpms-travel-agency-demo: A JBoss BPM Suite demo project around a travel agency booking workflo…
In that demo, look at the way we call the FlightService, especially on how map the request and response in Data Input and Output Assignment of the WebServiceWorkItemHandler.
Cheers,
Duncan