【问题标题】:Mule - Set properties on spring object call in Mule flowMule - 在 Mule 流中设置弹簧对象调用的属性
【发布时间】:2013-12-11 23:14:19
【问题描述】:

我正在使用 Mule 3.3.CE

我有一个名为 SpringObject 的类,它实现了 Callable 接口

package com.threads.test;

import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;

public class SpringObject implements Callable {

    private String someData;
    public String getSomeData() {
        return someData;
    }

    public void setSomeData(String someData) {
        this.someData = someData;
    }

    @Override
    public Object onCall(MuleEventContext eventContext) throws Exception {
        System.out.println("CALL SPRING --->>"+someData);

        return eventContext.getMessage();
    }

}    

我的流程是

<http:connector name="httpConnectorEntryPoint" doc:name="HTTP\HTTPS"/>

<spring:beans xmlns="http://www.springframework.org/schema/beans">
<spring:bean id="component" name="component" class="com.threads.test.SpringObject" lazy-init="false">   
</spring:bean>
</spring:beans>
<flow name="TestThreadsFlow1" doc:name="TestThreadsFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8099" path="m" connector-ref="httpConnectorEntryPoint" doc:name="HTTP"/>
        <set-payload value="#[&quot;ExitA&quot;]" doc:name="Set Payload"/>
        <component doc:name="Java">
            <spring-object bean="component">
                <property key="someData" value="Information"/>
            </spring-object>
        </component>
    </flow>

问题是当我运行我的流程并使用 http 连接器时,控制台会显示

CALL SPRING --->>null

而不是

CALL SPRING --->>信息

可能是什么?

【问题讨论】:

    标签: java spring mule mule-el


    【解决方案1】:

    您可以尝试在流程之外配置您的 spring bean,如下所示:

    <spring:bean id="component" name="component"
        class="com.threads.test.SpringObject" lazy-init="false">
        <spring:property name="someData" value="Information" />
    </spring:bean>
    
    and inside the flow do:
    
    <component>
        <spring-object bean="component" />
    </component>
    

    【讨论】:

    • 为什么重复回答?
    【解决方案2】:

    来自 XSD 中的属性元素描述:

    设置 Mule 属性。这是一个名称/值对,可以设置在 组件,服务等,并提供通用的方式 配置系统。通常,您不需要使用泛型 像这样的属性,因为几乎所有功能都通过 专用元素。但是,它在配置 obscure 时很有用 或被忽略的选项以及从通用配置传输 端点元素。

    这意味着它不适用于您尝试使用它的用途。在 bean 中设置属性的适当方法如下:

    <spring:bean id="component" name="component" class="com.threads.test.SpringObject" lazy-init="false">
        <spring:property name="someData" value="Information"/>
    </spring:bean>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多