August 15, 2023

Scenario: Service sending a message without expecting a response – Docs for ESB 6.x

Scenario: Service sending a message without expecting a response

This scenario applies only to a Talend solution with ESB.

The Jobs, which are built upon the components under the ESB/Web Services family, act
as the implementations of web services defined in the Services node of the Repository. They
require the creation of and association with relevant services. For more information
about services, see the related topics in the
Talend Studio User
Guide
.

In this scenario, a provider Job and a consumer Job are needed. In the meantime, the
related service should already exist in the Services
node, with the WSDL URI being
http://127.0.0.1.8088/esb/provider/?WSDL, the port name being
TEST_ProviderJobSoapBinding and the operation
being invoke(anyType):anyType.

The provider Job consists of a tESBProviderRequest, a
tXMLMap, and two tLogRow components.

Use_Case_tESBProviderRequest1.png
  • Drop the following components from the Palette onto the design workspace: a tESBProviderRequest, a tXMLMap,
    and two tLogRow.

  • Double-click tESBProviderRequest_1 in the
    design workspace to display its Component view
    and set its Basic settings.

Use_Case_tESBProviderRequest2.png
  • Select Repository from the Property Type list and click the three-dot button to
    choose the service, to the granularity of port name and operation.

Use_Case_tESBProviderRequest23.png
  • Click OK.

  • Click the three-dot button next to Edit
    schema
    to view the schema of tESBProviderRequest_1.

Use_Case_tESBProviderRequest3.png
  • Click OK.

  • Connect tESBProviderRequest_1 to tLogRow_1.

  • Double-click tLogRow_1 in the design
    workspace to display its Component view and set
    its Basic settings.

Use_Case_tESBProviderRequest4.png
  • Click the three-dot button next to Edit
    schema
    . and define the schema as follow.

Use_Case_tESBProviderRequest5.png
  • Connect tLogRow_1 to tXMLMap_1.

  • Connect tXMLMap_1 to tLogRow_2 and name this row as
    payload.

  • In the design workspace, double-click tXMLMap_1 to open the Map
    Editor
    .

  • On the lower right part of the map editor, click the plus button to add one
    row to the payload table and name this row as
    payload.

  • In the Type column of this
    payload row, select Document as the data type. The corresponding XML root is added
    automatically to the top table on the right side which represents the output
    flow.

  • In the payload table, right-click
    root to open the contextual menu.

  • From the contextual menu, select Create
    Sub-Element
    and type in response in the
    popup dialog box.

  • Right-click the response node and select As loop element from the contextual menu.

  • Repeat this operation to create a sub-element request of
    the root node in the input table and set the
    request node as loop element.

  • Click the request node in the input table and drop it to
    the Expression column in the row of the
    response node in the output table.

Use_Case_tESBProviderRequest6.png
  • Click OK to validate the mapping and close
    the map editor.

  • Double-click tLogRow_2 in the design
    workspace to display its Component view and set
    its Basic settings.

Use_Case_tESBProviderRequest7.png
  • Click the three-dot button next to Edit
    Schema
    and define the schema as follow.

Use_Case_tESBProviderRequest8.png
  • Save the Job.

The consumer Job consists of a tFixedFlowInput, a
tXMLMap, a tESBConsumer, and two tLogRow
components.

Use_Case_tESBProviderRequest9.png
  • Drop the following components from the Palette onto the design workspace: a tFixedFlowInput, a tXMLMap, a
    tESBConsumer, and two tLogRow.

  • Double-click tFixedFlowInput_1 in the design
    workspace to display its Component view and set
    its Basic settings.

Use_Case_tESBProviderRequest10.png
  • Edit the schema of the tFixedFlowInput_1
    component.

Use_Case_tESBProviderRequest11.png
  • Click the plus button to add a new line of string type and name it
    payloadString.

  • Click OK.

  • In the Number of rows field, set the number
    of rows as 1.

  • In the Mode area, select Use Single Table and input world in
    quotations into the Value field.

  • Connect tFixedFlowInput_1 to tXMLMap_1.

  • Connect tXMLMap_1 to tESBConsumer_1 and name this row as
    payload.

  • In the design workspace, double-click tXMLMap_1 to open the Map
    Editor
    .

  • In the output table, right-click the root node to open
    the contextual menu.

  • From the contextual menu, select Create
    Sub-Element
    and type in request in the popup
    dialog box.

  • Right-click the request node and select As loop element from the contextual menu.

  • Click the payloadstring node in the input table and drop
    it to the Expression column in the row of the
    request node in the output table.

Use_Case_tESBProviderRequest12.png
  • Click OK to validate the mapping and close
    the Map Editor.

  • Start the Provider Job. In the executing log you can see:

  • In the tESBConsumer_1
    Component view, set its Basic settings.

Use_Case_tESBProviderRequest13.png
  • Click the three-dot button next to the Service
    Configuration
    to open the editor.

Use_Case_tESBProviderRequest14.png
  • In the WSDL field, type in:
    http://127.0.0.1:8088/esb/provider?WSDL.

  • Click the Refresh button to retrieve port name and operation name.

  • Click OK.

  • In the Basic settings of the tESBConsumer, set the Input
    Schema
    as follow:

Use_Case_tESBProviderRequest15.png
  • Set the Response Schema as follow:

Use_Case_tESBProviderRequest16.png
  • Set the Fault Schema as follow:

Use_Case_tESBProviderRequest17.png
  • Connect tESBConsumer_1 to tLogRow_1 and tLogRow_2.

  • In the design workspace, double-click the tLogRow_1 component to display its Component view and set its Basic
    settings
    .

Use_Case_tESBProviderRequest18.png
  • Click the three-dot button next to Edit
    Schema
    and define the schema as follow:

Use_Case_tESBProviderRequest19.png
  • In the Job Design, double-click tLogRow_2 to
    display its Component view and set its
    Basic settings.

Use_Case_tESBProviderRequest20.png
  • Click the three-dot button next to Edit
    Schema
    and define the schema as follow.

Use_Case_tESBProviderRequest21.png
  • Save the Job.

  • Run the provider Job. In the execution log you will see:

    INFO: Setting the server’s publish address to be
    http://127.0.0.1:8088/esb/provider

    2011-04-21 14:14:36.793:INFO::jetty-7.2.2.v20101205

    2011-04-21 14:14:37.856:INFO::Started

    SelectChannelConnector@127.0.0.1:8088

    web service [endpoint: http://127.0.0.1:8088/esb/provider] published

  • Run the consumer Job. In the execution log of the Job you will see:

  • In the provider’s log you will see the trace log:


Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x