Trong bài viết này, mình sẽ trình bày với các bạn cách gọi phương thức của một đối tượng bất kỳ trong Mule ESB sử dụng Invoke Component nhé các bạn!
Đầu tiên, mình sẽ tạo mới một project để làm ví dụ:
Bây giờ, mình sẽ tạo mới một đối tượng HelloWorld nằm trong package com.huongdanjava.muleesbinvokecomponent.
Với nội dung như sau:
1 2 3 4 5 6 7 8 |
package com.huongdanjava.muleesbinvokecomponent; public class HelloWorld { public String hello(String name) { return String.format("Hello %s", name); } } |
Để Invoke Component có thể gọi phương thức hello() trong class HelloWorld thì chúng ta cần khai báo đối tượng của class này là một Spring bean.
Vì thế, các bạn hãy mở tập tin mule-esb-invoke-component.xml rồi khai báo đối tượng HelloWorld trong khung chứa của Spring như sau nhé:
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.8.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> <spring:beans> <spring:bean class="com.huongdanjava.muleesbinvokecomponent.HelloWorld" name="invoke" /> </spring:beans> </mule> |
Bây giờ, chúng ta sẽ tạo mới một flow để xem Invoke Component làm việc như thế nào nhé các bạn.
Flow của chúng ta sẽ bao gồm HTTP Listener Connector và Invoke Component như sau:
Trong đó:
- HTTP Listener Connector được cấu hình như sau:
General Settings:
Bạn nào chưa biết cách cấu hình HTTP Listener Connector thì có thể tham khảo bài viết này nhé!
- Đối với Invoke Component thì mình cấu hình như sau:
Ở đây:
– Name là tên của Endpoint.
– Object Ref là id của đối tượng trong Spring bean. Trong ví dụ của mình, đối tượng HelloWorld của mình đã được khai báo với id là invoke trong khung chứa của Spring.
– Method là tên method mà chúng ta muốn gọi. Ví dụ của mình là phương thức hello().
– Method Arguments là giá trị của các tham số mà chúng ta sẽ truyền vào cho phương thức. Nếu có nhiều tham số, thì mỗi giá trị sẽ ngăn cách bởi dấu phẩy. Trong ví dụ của mình, bởi vì phương thức hello() chỉ có một tham số nên mình chỉ khai báo một giá trị. Và giá trị này được lấy từ parameter của request tới HTTP Listener Connector.
OK, vậy là chúng ta đã hoàn thành một flow đơn giản có sử dụng Invoke Component.
Giờ thử chạy xem sao nhé các bạn.
http://localhost:8081/hello?name=Khanh
Kết quả: