Deploying a SOAP Webservice without a WSDL Definition
The following explains how to deploy SOAP webservices with the X4 BPMS, for example, in the RPC style, without a WSDL definition via HTTP POST.
Prerequisites:
You have basic knowledge of the structure of SOAP webservices.
You have created a Technical Process for each webservice operation, which processes the respective incoming request. The Technical Process is referenced via its
x4db:/-URL.You have a partial URL, via which the SOAP webservice should be accessible via HTTP, e.g. via
http://localhost:8080/X4/httpstarter/ReST/MyWebservice. You have already typically defined the corresponding URL part as a constant within the websrvice configuration. For more information, see (7.4.4-en) Graphically Editing the Webservice Configuration .
Deploying Technical Process as SOAP webservices without a WSDL definition
Create a new service entry of the
SOAPtype under the desired URL resource (defined, e.g. by a constant URL part) using the Add SOAP Service entry in the context menu.Define the SOAP version (either SOAP 1.1, SOAP 1.2, or support for both standards).
Select
Nonein WSDL Mode.Define the following configuration for each operation:
Define the
Qualified Nameof the first element in the SOAP request body for the operation as the name.Link the Technical Process that processes the webservice request through the X4 Server using the associated
x4db:/ URL.Define the input handler and output handler for the SOAP webservice.
Note:
In the Web Service Configuration Editor, you can link Technical Processes from the Repository Navigator via drag and drop.
Click
Save and apply the webservice configuration by clicking Reload on Server.
The SOAP webservice is now active and can only be accessed via HTTP POST via its service URL. Calling the service URL via HTTP GET does not return a WSDL definition.
✅ The SOAP webservice is now active and can only be accessed via HTTP POST via its service URL. Calling the service URL via HTTP GET does not return a WSDL definition.
Example: Configuration of the webservice without WSDL definition
<Service type="Soap">
<SoapVersion>
<SOAP11/>
<SOAP12/>
</SoapVersion>
<Wsdl mode="NONE"/>
<Namespace prefix="exampleSpace" namespace="http://example.org/namespace"/>
<Namespace prefix="anotherSpace" namespace="http://example.org/different/namespace"/>
<!-- requires unique qualified names for the operations -->
<Operation name="exampleSpace:SpacedOperation"
process="x4db:/1/RestExamples/soap/DirectOutput.wrf">
<InputHandler type="SOAP-Envelope"/>
<OutputHandler type="SOAP-Envelope"/>
</Operation>
<Operation name="anotherSpace:SpacedOperation"
process="x4db:/1/RestExamples/soap/DirectOutput.wrf">
<InputHandler type="SOAP-Envelope"/>
<OutputHandler type="SOAP-Envelope"/>
</Operation>
<Operation name="UnSpacedOperation"
process="x4db:/1/RestExamples/soap/DirectOutput.wrf">
<InputHandler type="SOAP-Envelope"/>
<OutputHandler type="SOAP-Envelope"/>
</Operation>
</Service>