2013-12-11 3 views
1

Я использую Mule 3.3.CEMule - Установка свойств на весеннем объект вызова в потоке Mule

У меня есть класс с именем SpringObject, который реализует интерфейс отзывного

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, консоль показывает

ВЫЗОВ SPRING --- >> нуль

вместо

ВЫЗОВ SPRING --- >> Информация

Что может быть?

ответ

3

вы можете попробовать настроить пружинный боб вне потока, как следующие:

<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> 
+0

Почему повторный ответ? – Seba

2

Из описания свойств элементов в XSD:

Устанавливает Mule свойство. Это пара имя/значение, которая может быть установлена ​​на компонентах, услугах и т. Д. и которые обеспечивают общий способ настройки системы . Как правило, вам не нужно использовать общее свойство , так как почти все функции отображаются через выделенные элементы. Тем не менее, это может быть полезно при настройке неясных или упущенных опций и при настройке транспортов из общих элементов конечной точки .

Это означает, что это не так, как вы хотите, чтобы использовать его. Соответствующий способ установить свойство в вашем боб выглядит следующим образом:

<spring:bean id="component" name="component" class="com.threads.test.SpringObject" lazy-init="false"> 
    <spring:property name="someData" value="Information"/> 
</spring:bean> 
Смежные вопросы