MuleSoftJava转换器
我不知道如何在Mulesoft中使用Java转换器。我基本上想要获取一个字符串并将其转换为URL,但我不知道如何使用Java方法或任何东西 我做错了什么?我怎样才能调用我的方法,或者使我的方法与我想要的值一起使用 错误: 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:未能 将[java.util.ArrayList]类型的属性值转换为所需类型 属性“messageProcessors”的[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) StringTransformerMuleSoftJava转换器,java,spring,Java,Spring,我不知道如何在Mulesoft中使用Java转换器。我基本上想要获取一个字符串并将其转换为URL,但我不知道如何使用Java方法或任何东西 我做错了什么?我怎样才能调用我的方法,或者使我的方法与我想要的值一起使用 错误: org.mule.module.launcher.DeploymentInitException: IllegalStateException:无法转换类型的值 [transformers.StringTransformer]至所需类型 属性的[org.mule.api.pro
@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>
对于简单的字符串操作,我更喜欢使用简单的MEL表达式,下面是创建新变量的示例
<set-variable variableName="website" value="#[new java.net.URL(payload.Website).toString()]" doc:name="Variable"/>
为了对MuleMessage进行分析,我更喜欢扩展AbstractMessageTransformer类
public class ExampleAbstractMessageTransformer extends AbstractMessageTransformer {
@Override
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
// TODO Auto-generated method stub
HashMap<String, String> payload = new HashMap<String, String>();
String websiteUrl = new String();
//Grab Payload
payload = (HashMap<String, String>) message.getPayload();
try {
websiteUrl = stringToURL(payload.get("Website").toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
message.setInvocationProperty("websiteUrl", websiteUrl);
return message;
}
public String stringToURL(String string) throws MalformedURLException {
return new java.net.URL(string).toString();
}
}
公共类示例AbstractMessageTransformer扩展AbstractMessageTransformer{
@凌驾
公共对象transformMessage(多消息消息、字符串输出编码)引发TransformerException{
//TODO自动生成的方法存根
HashMap负载=新的HashMap();
String websiteUrl=新字符串();
//抓斗有效载荷
payload=(HashMap)message.getPayload();
试一试{
websiteUrl=stringToURL(payload.get(“网站”).toString());
}捕获(格式错误){
e、 printStackTrace();
}
message.setInvocationProperty(“websiteUrl”,websiteUrl);
返回消息;
}
公共字符串stringToURL(字符串字符串)引发错误的DurLexException{
返回新的java.net.URL(string.toString();
}
}
在Mulesoft流中实现。假设java代码打包为com.stackoverflow.transformers使用“CustomTransformer”组件
<custom-transformer class="com.stackoverflow.transformers.ExampleAbstractMessageTransformer" doc:name="Java" />
对于简单的字符串操作,我更喜欢使用简单的MEL表达式,下面是创建新变量的示例
<set-variable variableName="website" value="#[new java.net.URL(payload.Website).toString()]" doc:name="Variable"/>
为了对MuleMessage进行分析,我更喜欢扩展AbstractMessageTransformer类
public class ExampleAbstractMessageTransformer extends AbstractMessageTransformer {
@Override
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
// TODO Auto-generated method stub
HashMap<String, String> payload = new HashMap<String, String>();
String websiteUrl = new String();
//Grab Payload
payload = (HashMap<String, String>) message.getPayload();
try {
websiteUrl = stringToURL(payload.get("Website").toString());
} catch (MalformedURLException e) {
e.printStackTrace();
}
message.setInvocationProperty("websiteUrl", websiteUrl);
return message;
}
public String stringToURL(String string) throws MalformedURLException {
return new java.net.URL(string).toString();
}
}
公共类示例AbstractMessageTransformer扩展AbstractMessageTransformer{
@凌驾
公共对象transformMessage(多消息消息、字符串输出编码)引发TransformerException{
//TODO自动生成的方法存根
HashMap负载=新的HashMap();
String websiteUrl=新字符串();
//抓斗有效载荷
payload=(HashMap)message.getPayload();
试一试{
websiteUrl=stringToURL(payload.get(“网站”).toString());
}捕获(格式错误){
e、 printStackTrace();
}
message.setInvocationProperty(“websiteUrl”,websiteUrl);
返回消息;
}
公共字符串stringToURL(字符串字符串)引发错误的DurLexException{
返回新的java.net.URL(string.toString();
}
}
在Mulesoft流中实现。假设java代码打包为com.stackoverflow.transformers使用“CustomTransformer”组件
<custom-transformer class="com.stackoverflow.transformers.ExampleAbstractMessageTransformer" doc:name="Java" />
您可以使用invoke组件调用java方法。选中您可以使用invoke组件调用java方法。检查自Mule 3.0.1以来的
@containstransformethods//
公共类MyTransformers{
@变压器
公共URL stringToURL(字符串){
返回新的java.net.URL(字符串);
}
@变压器
公共列表字符串URL(字符串){
列出自Mule 3.0.1以来的@containstransformethods//
公共类MyTransformers{
@变压器
公共URL stringToURL(字符串){
返回新的java.net.URL(字符串);
}
@变压器
公共列表字符串URL(字符串){
请在答案中解释如何做。请在答案中解释如何做。试着解释你的答案。不要只给出答案的代码。试着解释你的答案。不要只给出答案的代码