Правильная интеграция планировщика Quartz с примером Mule ESB - PullRequest
0 голосов
/ 14 марта 2012

Я должен создать POC для интеграции Кварца с Мулом. Я хочу создать простой поток, в котором простое электронное письмо («Hello World») должно отправляться определенным получателям каждые 5 минут. Не могли бы вы поделиться подробными шагами и конфигурацией для этого?

Я пробовал много разных примеров, перечисленных на разных сайтах, но ничего не получалось. Даже если мы пока что запустим простую работу по протоколированию, этого будет достаточно.

Ниже представлены мои mule-config.xml и фрагменты Java-компонентов:

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   ...
   ...
">    
    <!-- Changes added for Quartz POC Start -->
    <spring:bean name="myjob1"
                 class="com.sjm.quartzservice.NoArgsMethodComponent"/>
    <service name="testService5">
        <inbound>
            <quartz:inbound-endpoint name="qEP5"
                 cronExpression="5 * * * * ?"
                 jobName="job5"
                 connector-ref="quartzConnector">
                <quartz:event-generator-job/>
            </quartz:inbound-endpoint>
        </inbound>
        <component>
            <spring-object bean="myjob1"/>
        </component>
    </service>
    <!-- Changes added for Quartz POC End -->

</mule>

Код компонента:

import java.util.logging.Level;
import java.util.logging.Logger;

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

public class NoArgsMethodComponent implements Callable {

public String fireMe(MuleMessage muleMessage, MuleContext context)
{
    Logger.getLogger(NoArgsMethodComponent.class.getName()).log(Level.INFO, "I got Scheduled!!!");
    return "I got Scheduled!";
}

public Object onCall(MuleEventContext mec) throws Exception { 
      return (Object) fireMe(mec.getMessage(), mec.getMuleContext());
   }
}
...