최근에는 몇 가지 뮬 문서를 보았습니다. 자바 클래스에서 더 많은 메서드를 사용하여 MEL을 확장 할 수있는 것처럼 보입니다. 누구든지이 일을하는 데 어떤 경험이 있으며 어떻게 작동합니까?Mule-EL을 사용하고 확장하는 방법은 무엇입니까?
그래서 MEL은 MEL에서 메소드를 호출 할 수 있도록 다음 자바 클래스를 자동으로 가져옵니다. 이 자바 클래스 목록을 확장하려고했다.
MEL은 아래 나열된 Java 클래스를 자동으로 가져옵니다. 전체 한정자 이름을 사용하지 않고 이러한 가져온 클래스를 사용할 수 있습니다. 예를 들어 BigInteger가 임포트되기 때문에 # [java.math.BigInteger.valueOf (payload.dueAmount)] 대신 # [BigInteger.valueOf (payload.dueAmount)]를 쓸 수 있습니다.
- 있는 java.lang. *
- 는 java.io *
- java.net. *
- 있는 java.util. *
- 자바. 수학 .BigDecimal
- java.math.BigInteger의
- javax.activation.DataHandler의
- javax.activation.MimeType
- 있으며, java.util.regex.Pattern
- org.mule.api.transformer .DataType
- org.mule.transformer.types.DataTypeFactory
추가 Java 클래스 가져 오기 등으로 전역 구성을 정의하는 방법에 대한 문서가 있지만 정확히 어떻게 사용해야하는지 잘 모르겠습니다.
<configuration>
<expression-language autoResolveVariables="false">
<import class="org.mule.util.StringUtils" />
<import name="rsu" class="org.apache.commons.lang.RandomStringUtils" />
<alias name="appName" expression="app.name" />
<global-functions file="extraFunctions.mvel">
def reversePayload() { StringUtils.reverse(payload) }
def randomString(size) { rsu.randomAlphanumeric(size) }
</global-functions>
</expression-language>
</configuration>
위의 구성으로 MEL의 메소드에 액세스하는 방법은 무엇입니까? 그것은 ...
<set-variable value="#[appName.reversePayload()]" variableName="reversePayload" doc:name="Variable containing a reverse version of the Payload"/>