我不知道如何在Mulesoft中使用Java Transformer。我想基本上采取一个字符串,并将其转换为URL,但我无法弄清楚如何使用Java方法或任何东西。Mulesoft Java Transformer
我在做什么错?我怎样才能让我调用我的方法,或者让我的方法与我想要的值一起使用?
ERRORS:
org.mule.module.launcher.DeploymentInitException: IllegalStateException异常:无法转换类型的值 [transformers.StringTransformer]所需类型 [org.mule.api.processor .MessageProcessor用于属性 'messageProcessors [4]':没有匹配的编辑器或转换策略 发现
所致:org.mule.api.config.ConfigurationException:错误创建 名称为'streamMigrateAccountToCustomer'的bean:初始化为 bean失败;嵌套异常是 org.springframework.beans.ConversionNotSupportedException:无法将 转换为属性'messageProcessors'的类型为[java.util.ArrayList]的属性值为所需类型 [java.util.List];嵌套异常是 java.lang.IllegalStateException:无法将类型 [transformers.StringTransformer]的值转换为所需的类型 [org.mule.api.processor.MessageProcessor]属性 'messageProcessors [4]':没有匹配的编辑器或转换战略 实测值(org.mule.api.lifecycle.InitialisationException) (org.mule.api.config.ConfigurationException)
StringTransformer
@ContainsTransformerMethods
public class StringTransformer
{
public String website;
public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
@Transformer
public String stringToURL(String string) throws MalformedURLException
{
return new java.net.URL(string).toString();
}
}
XML
<custom-transformer class="transformers.StringTransformer" doc:name="Java">
<spring:property name="website" value="#[payload.Website]"/>
</custom-transformer>
输入到JAVA变压器
%dw 1.0
%output application/java
---
{
Id: payload.Id,
Name: payload.Name,
Active_CMRR__c: payload.Active_CMRR__c,
BillingStreet: payload.BillingStreet,
BillingCity: payload.BillingCity,
BillingState: payload.BillingState,
BillingPostalCode: payload.BillingPostalCode,
BillingCountry: payload.BillingCountry,
OwnerId: payload.OwnerId,
Website: payload.Website,
Contract_End_Date__c: payload.Contract_End_Date__c,
NS_Account_Number__c: payload.NS_Account_Number__c,
Phone: payload.Phone,
Subscription_Start_Date__c: payload.Subscription_Start_Date__c,
NS_Account_Name__c: payload.NS_Account_Name__c,
type: payload.type,
Owner: {
NS_Account_Manager_Id__c: payload.Owner.NS_Account_Manager_Id__c,
Id: payload.Owner.Id,
type: payload.Owner.type,
Name: payload.Owner.Name
}
}
请解释*如何*在答案本身做到这一点。 –