Building a Job as a Microservice (Spring-boot) for ESB - Cloud

Talend Cloud API Services Platform Studio User Guide

author
Talend Documentation Team
EnrichVersion
Cloud
EnrichProdName
Talend Cloud
task
Design and Development
EnrichPlatform
Talend Management Console
Talend Studio

About this task

In the [Build Job] dialog box, you can change the build type to build a Data Service Job to a Spring-boot based ESB Microservice.
Warning: Only Jobs that include the tRESTRequest component can be built as a Spring-boot based ESB Microservice.

Procedure

  1. Click on the Studio tool bar, or select File > Edit Project Properties from the menu bar to open the Project Settings dialog box.
  2. In the tree diagram to the left of the dialog box, select Log4j to display the corresponding view.
  3. Customize the Log4j configuration as needed. The default Log4j XML instructions only output the WARN logs to the console. For more information on the log4j parameters, see http://wiki.apache.org/logging-log4j/Log4jXmlFormat.
    A sample Log4j configuration is shown below which will also provide a tesb.log file when the ESB Microservice is started. Note that the Log4j configuration is the same for the Studio and the ESB Microservice. Nevertheless a log4j.xml file can also be placed into an external configuration folder of the Microservice at runtime to provide a specific Log4j configuration for production deployment.
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d | %-5.5p | %-16.16t | %-32.32C %4L | %m%n"/>
            </layout>
        </appender>
        <appender name="rollingFile" class="org.apache.log4j.RollingFileAppender">
            <param name="file" value="tesb.log"/>
            <param name="MaxFileSize" value="1024KB"/>
            <param name="MaxBackupIndex" value="10"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d | %-5.5p | %-16.16t | %-32.32C %4L | %m%n"/>
            </layout>
        </appender>
        <root>
            <priority value="info"/>
            <appender-ref ref="stdout"/>
            <appender-ref ref="rollingFile"/>
        </root>
    </log4j:configuration>
  4. In the tRESTRequest component of the Job, you need to use relative endpoint URL instead of absolute URL. When the Microservice is running, an embedded Tomcat container with the default 8065 port is started by Spring-boot. The REST service also runs in this port. If you want to override the default port, either use the --server.port option in the command or configure it in the application.properties file in the /config folder inside the Microservice jar.
  5. Open the Job that you want to build as a Microservice in the design work space. In the Deployment view of the Job tab, select Microservice for ESB from the Build Type list. Save the Job.
  6. In the Repository tree view, right-click the Job you want to build, and select Build Job to open the Build Job dialog box.
  7. In the To archive file field, browse to the directory where you want to save your built Job.
  8. In the Job Version area, select the version number of the Job you want to build if you have created more than one version of the Job.
  9. In the Build Type area, select Microservice (Spring Boot) For ESB.
  10. In the options area:
    • Select the Add maven script check box to include the required Maven script in the target archive, which is a .zip file in this case, if you want to rebuild the built Job into your own JAR with Maven.

    • select the Only export the default context option to export only the default context used in the Job;

    • select the Export as ZIP option to export the Job to a .zip file, which provides an external config folder and start scripts to start the Microservice with the external config folder for Linux (.sh) and Windows (.bat). If this option is not selected, the Job is exported as a .jar file by default.

  11. Click Finish to validate your changes, complete the export operation and close the dialog box. A pop up window appears prompting you that Maven needs to be set to online to build the ESB Microservice, as some libraries have to be downloaded from the remote Maven repository. Talend Studio requires Internet access when you use the ESB Microservice feature. Talend Studio does not provide a pure offline mode for the ESB Microservice build operation. Click Yes to change Maven to online mode.
    If the Finish operation leads to an error, you can find more information in the Studio log file <Studio_Home>\workspace\.metadata\.log.

Results

A .jar or .zip file for the Job is created in the defined place. You can run it independent of Talend Studio in standalone mode. For more information about how to run the Microservice, see Running a Microservice Route.