2014-09-24 2 views
0

최근에는 몇 가지 뮬 문서를 보았습니다. 자바 클래스에서 더 많은 메서드를 사용하여 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"/> 

답변

1

자격없이 사용할 수 있다고 생각합니다.

<set-variable value="#[reversePayload()]" variableName="reversePayload" doc:name="Variable containing a reverse version of the Payload"/> 
관련 문제