Запустите веб-сервис SOAP из файла .bpmn в activiti. - PullRequest
0 голосов
/ 01 ноября 2018

Приветствую сообщество, я создал самый простой из возможных сервисов SOAP в java, и я хотел бы запустить его внутри моего файла .bpmn2, но не могу найти пошаговый пример для достижения этой цели.

Услуга следующего класса

public class ServiceImpl implements Service {

@Override
public String helloWorld(){
  return "Hello World";
}

и сгенерированный файл .wsdl

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://java.nick.org" xmlns:intf="http://java.nick.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.nick.org">
 <!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://java.nick.org">
<element name="helloWorld">
<complexType/>
</element>
<element name="helloWorldResponse">
<complexType>
<sequence>
<element name="helloWorldReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="helloWorldRequest">
<wsdl:part element="impl:helloWorld" name="parameters"> </wsdl:part>
</wsdl:message>
<wsdl:message name="helloWorldResponse">
<wsdl:part element="impl:helloWorldResponse" name="parameters"> </wsdl:part>
</wsdl:message>
<wsdl:portType name="ServiceImpl">
<wsdl:operation name="helloWorld">
<wsdl:input message="impl:helloWorldRequest" name="helloWorldRequest"> </wsdl:input>
<wsdl:output message="impl:helloWorldResponse" name="helloWorldResponse"> </wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ServiceImplSoapBinding" type="impl:ServiceImpl">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="helloWorld">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="helloWorldRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="helloWorldResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ServiceImplService">
<wsdl:port binding="impl:ServiceImplSoapBinding" name="ServiceImpl">
<wsdlsoap:address location="http://localhost:9080/soapExampleHelloWorld/services/ServiceImpl"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

, который, как вы видите, я выставляю на порт 9080 моего локального хоста. Я ищу способ вызвать эту функцию helloWorld через мой файл .bpmn при его развертывании.

Я использую Alfresco Community Edition 6.0.0 со встроенным движком activiti

То, что я до сих пор делал, находится внутри моего файла .bpmn. Я импортирую файл .wsdl, как показано ниже:

<import importType="http://schemas.xmlsoap.org/wsdl/"
       location="http://localhost:9080/soapExampleHelloWorld/services/ServiceImpl?wsdl"
       namespace="http://webservice.activiti.org"/> 

Я слежу за этим уроком https://www.activiti.org/userguide/#bpmnWebserviceTask и знаю, что мне как-то нужно использовать serviceTask , но я не могу уточнить, какие шаги следует выполнить для запуска этой функции (например, отправить SOAP запрос, как показано ниже

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://java.nick.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <q0:helloWorld/>
  </soapenv:Body>
</soapenv:Envelope>

и получите ответ.

Заранее спасибо за любую помощь:)

...