Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MuleSoftJava转换器_Java_Spring - Fatal编程技术网

MuleSoftJava转换器

MuleSoftJava转换器,java,spring,Java,Spring,我不知道如何在Mulesoft中使用Java转换器。我基本上想要获取一个字符串并将其转换为URL,但我不知道如何使用Java方法或任何东西 我做错了什么?我怎样才能调用我的方法,或者使我的方法与我想要的值一起使用 错误: org.mule.module.launcher.DeploymentInitException: IllegalStateException:无法转换类型的值 [transformers.StringTransformer]至所需类型 属性的[org.mule.api.pro

我不知道如何在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)

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>

对于简单的字符串操作,我更喜欢使用简单的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(字符串){

请在答案中解释如何做。请在答案中解释如何做。试着解释你的答案。不要只给出答案的代码。试着解释你的答案。不要只给出答案的代码