You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Jean-Baptiste Onofré <jb...@nanthrax.net> on 2009/09/08 12:11:39 UTC

Re: Service Mix Quartz

Hi,

To be honest, I don't understand your use case.

The ftp:sender endpoint takes a incoming message, uses the marshaller to 
transform the normalized message into a file and send via FTP.

In your case, you don't have any incoming message. So I think that your 
sender endpoint is called but doesn't do anything as it has nothing to 
marshal and send on the FTP.

Firing an event using quartz endpoint is not enough, you need to 
populate the in message. To do it, you can:
- using a quartz customer marshaler like this:
   <quartz:jobDetail>
     <quartz:jobDetail>
       <quartz:jobDataAsMap>
         <quartz:property key="xml"><![CDATA[
           <hello>world</hello>
         ]]></quartz:property>
       </quartz:jobDataAsMap>
     </quartz:jobDetail>
   </quartz:jobDetail>
This will set the <hello>world</hello> in the in message content and the 
file will content this.
- using another target service that populate the in message (with a 
servicemix-bean endpoint for example).

PS: please, send this kind of messages on the users mailing list.

Regards
JB

manosha wrote:
> Hi 
> 
> I am trying to schedule file transfer for an FTP using ServiceMix Quartz.I
> tried the quratz end points in xbean as well as servicemix file.File transer
> is working fine but scheduleing is not happening.
> the x bean content is below:
> The blow xbean is working fine and this transfers any file at once.
> 
> <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0"
> xmlns:tut="urn:servicemix:tutorial">
> - <!--  add the sender endpoint here 
>   --> 
> - <ftp:sender service="test:receiver" endpoint="receiver"
> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/sender">
> - <property name="marshaler">
>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler" /> 
>   </property>
>   </ftp:sender>
> - <!--  add the poller endpoint here 
>   --> 
> - <ftp:poller service="test:pollerservice" endpoint="pollerendpoint"
> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/poller" recursive="false"
> targetService="test:receiver" targetEndpoint="receiver">
> - <property name="marshaler">
>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler" /> 
>   </property>
>   </ftp:poller>
>   </beans>
> I added the below code after the first line
> <quartz:endpoint service="test:receiver" endpoint="receiver"
> targetService="test:receiver">
>   <quartz:trigger>
>     <quartz:simple repeatCount="0" repeatInterval="12000" />
>   </quartz:trigger>
> </quartz:endpoint>
> 
> If this is not the way to implement , then pls guide us how we can implement
> ftp file transefer using qauartz. I haven't got any lightneing document on
> this to help us.
> 
> Thanks in advance.
> 

Re: Service Mix Quartz

Posted by Brian Taylor <br...@briantaylor.us>.
Thanks Gert for the reply,

I haven't been using Maven. I assumed that I could just drop the quarty
component in the hotdeploy folder and it contained all of the libraries
needed and then drop a quart sa/su into the hotdeploy and it would just
work. Is Maven required to pull additional libraries down outside into my
local repository? I'm using ServiceMix 3.3.1.

Brian


Gert Vanthienen wrote:
> 
> Brian,
> 
> There's an example on how to use a custom marshaler on
> http://cwiki.apache.org/confluence/display/SM/servicemix-quartz.  The
> example first puts the XML message on the job data map and
> subsequently uses a marshaler to transfer the data to the actual
> NormalizedMessage, but you could also just write a marshaler class
> that adds the content to the message directly without using the data
> map.
> 
> For the ClassNotFoundException, could you verify that your SU depends
> on the servicemix-quartz component?  Just check the pom.xml file or
> run a mvn dependency:tree to be sure.  If that's the case, the SU
> classloader should be able to find the class that's in the component's
> lib directory.  What version of ServiceMix are you using, btw?
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/9/9 Brian Taylor <br...@briantaylor.us>:
>>
>> Jean,
>>
>> When I try this I get a 'ClassNotFoundException: org.quartz.JobDetail'
>> exception.
>>
>> I verified the Quartz SE is running using JConsole with no errors
>> reported
>> in the console. That class is in the quartz lib under the component's
>> deployed folder. Any idea why this would happen?
>>
>>
>> Jean-Baptiste Onofré wrote:
>>>
>>> Hi,
>>>
>>> To be honest, I don't understand your use case.
>>>
>>> The ftp:sender endpoint takes a incoming message, uses the marshaller to
>>> transform the normalized message into a file and send via FTP.
>>>
>>> In your case, you don't have any incoming message. So I think that your
>>> sender endpoint is called but doesn't do anything as it has nothing to
>>> marshal and send on the FTP.
>>>
>>> Firing an event using quartz endpoint is not enough, you need to
>>> populate the in message. To do it, you can:
>>> - using a quartz customer marshaler like this:
>>>    <quartz:jobDetail>
>>>      <quartz:jobDetail>
>>>        <quartz:jobDataAsMap>
>>>          <quartz:property key="xml"><![CDATA[
>>>            <hello>world</hello>
>>>          ]]></quartz:property>
>>>        </quartz:jobDataAsMap>
>>>      </quartz:jobDetail>
>>>    </quartz:jobDetail>
>>> This will set the <hello>world</hello> in the in message content and the
>>> file will content this.
>>> - using another target service that populate the in message (with a
>>> servicemix-bean endpoint for example).
>>>
>>> PS: please, send this kind of messages on the users mailing list.
>>>
>>> Regards
>>> JB
>>>
>>> manosha wrote:
>>>> Hi
>>>>
>>>> I am trying to schedule file transfer for an FTP using ServiceMix
>>>> Quartz.I
>>>> tried the quratz end points in xbean as well as servicemix file.File
>>>> transer
>>>> is working fine but scheduleing is not happening.
>>>> the x bean content is below:
>>>> The blow xbean is working fine and this transfers any file at once.
>>>>
>>>> <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0"
>>>> xmlns:tut="urn:servicemix:tutorial">
>>>> - <!--  add the sender endpoint here
>>>>   -->
>>>> - <ftp:sender service="test:receiver" endpoint="receiver"
>>>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/sender">
>>>> - <property name="marshaler">
>>>>   <bean
>>>> class="org.apache.servicemix.components.util.BinaryFileMarshaler"
>>>> />
>>>>   </property>
>>>>   </ftp:sender>
>>>> - <!--  add the poller endpoint here
>>>>   -->
>>>> - <ftp:poller service="test:pollerservice" endpoint="pollerendpoint"
>>>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/poller"
>>>> recursive="false"
>>>> targetService="test:receiver" targetEndpoint="receiver">
>>>> - <property name="marshaler">
>>>>   <bean
>>>> class="org.apache.servicemix.components.util.BinaryFileMarshaler"
>>>> />
>>>>   </property>
>>>>   </ftp:poller>
>>>>   </beans>
>>>> I added the below code after the first line
>>>> <quartz:endpoint service="test:receiver" endpoint="receiver"
>>>> targetService="test:receiver">
>>>>   <quartz:trigger>
>>>>     <quartz:simple repeatCount="0" repeatInterval="12000" />
>>>>   </quartz:trigger>
>>>> </quartz:endpoint>
>>>>
>>>> If this is not the way to implement , then pls guide us how we can
>>>> implement
>>>> ftp file transefer using qauartz. I haven't got any lightneing document
>>>> on
>>>> this to help us.
>>>>
>>>> Thanks in advance.
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Re%3A-Service-Mix-Quartz-tp25343278p25371998.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://www.nabble.com/Re%3A-Service-Mix-Quartz-tp25343278p25402065.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Service Mix Quartz

Posted by Gert Vanthienen <ge...@gmail.com>.
Brian,

There's an example on how to use a custom marshaler on
http://cwiki.apache.org/confluence/display/SM/servicemix-quartz.  The
example first puts the XML message on the job data map and
subsequently uses a marshaler to transfer the data to the actual
NormalizedMessage, but you could also just write a marshaler class
that adds the content to the message directly without using the data
map.

For the ClassNotFoundException, could you verify that your SU depends
on the servicemix-quartz component?  Just check the pom.xml file or
run a mvn dependency:tree to be sure.  If that's the case, the SU
classloader should be able to find the class that's in the component's
lib directory.  What version of ServiceMix are you using, btw?

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/9/9 Brian Taylor <br...@briantaylor.us>:
>
> Jean,
>
> When I try this I get a 'ClassNotFoundException: org.quartz.JobDetail'
> exception.
>
> I verified the Quartz SE is running using JConsole with no errors reported
> in the console. That class is in the quartz lib under the component's
> deployed folder. Any idea why this would happen?
>
>
> Jean-Baptiste Onofré wrote:
>>
>> Hi,
>>
>> To be honest, I don't understand your use case.
>>
>> The ftp:sender endpoint takes a incoming message, uses the marshaller to
>> transform the normalized message into a file and send via FTP.
>>
>> In your case, you don't have any incoming message. So I think that your
>> sender endpoint is called but doesn't do anything as it has nothing to
>> marshal and send on the FTP.
>>
>> Firing an event using quartz endpoint is not enough, you need to
>> populate the in message. To do it, you can:
>> - using a quartz customer marshaler like this:
>>    <quartz:jobDetail>
>>      <quartz:jobDetail>
>>        <quartz:jobDataAsMap>
>>          <quartz:property key="xml"><![CDATA[
>>            <hello>world</hello>
>>          ]]></quartz:property>
>>        </quartz:jobDataAsMap>
>>      </quartz:jobDetail>
>>    </quartz:jobDetail>
>> This will set the <hello>world</hello> in the in message content and the
>> file will content this.
>> - using another target service that populate the in message (with a
>> servicemix-bean endpoint for example).
>>
>> PS: please, send this kind of messages on the users mailing list.
>>
>> Regards
>> JB
>>
>> manosha wrote:
>>> Hi
>>>
>>> I am trying to schedule file transfer for an FTP using ServiceMix
>>> Quartz.I
>>> tried the quratz end points in xbean as well as servicemix file.File
>>> transer
>>> is working fine but scheduleing is not happening.
>>> the x bean content is below:
>>> The blow xbean is working fine and this transfers any file at once.
>>>
>>> <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0"
>>> xmlns:tut="urn:servicemix:tutorial">
>>> - <!--  add the sender endpoint here
>>>   -->
>>> - <ftp:sender service="test:receiver" endpoint="receiver"
>>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/sender">
>>> - <property name="marshaler">
>>>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler"
>>> />
>>>   </property>
>>>   </ftp:sender>
>>> - <!--  add the poller endpoint here
>>>   -->
>>> - <ftp:poller service="test:pollerservice" endpoint="pollerendpoint"
>>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/poller"
>>> recursive="false"
>>> targetService="test:receiver" targetEndpoint="receiver">
>>> - <property name="marshaler">
>>>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler"
>>> />
>>>   </property>
>>>   </ftp:poller>
>>>   </beans>
>>> I added the below code after the first line
>>> <quartz:endpoint service="test:receiver" endpoint="receiver"
>>> targetService="test:receiver">
>>>   <quartz:trigger>
>>>     <quartz:simple repeatCount="0" repeatInterval="12000" />
>>>   </quartz:trigger>
>>> </quartz:endpoint>
>>>
>>> If this is not the way to implement , then pls guide us how we can
>>> implement
>>> ftp file transefer using qauartz. I haven't got any lightneing document
>>> on
>>> this to help us.
>>>
>>> Thanks in advance.
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Re%3A-Service-Mix-Quartz-tp25343278p25371998.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: Service Mix Quartz

Posted by Brian Taylor <br...@briantaylor.us>.
Jean,

When I try this I get a 'ClassNotFoundException: org.quartz.JobDetail'
exception.

I verified the Quartz SE is running using JConsole with no errors reported
in the console. That class is in the quartz lib under the component's
deployed folder. Any idea why this would happen?


Jean-Baptiste Onofré wrote:
> 
> Hi,
> 
> To be honest, I don't understand your use case.
> 
> The ftp:sender endpoint takes a incoming message, uses the marshaller to 
> transform the normalized message into a file and send via FTP.
> 
> In your case, you don't have any incoming message. So I think that your 
> sender endpoint is called but doesn't do anything as it has nothing to 
> marshal and send on the FTP.
> 
> Firing an event using quartz endpoint is not enough, you need to 
> populate the in message. To do it, you can:
> - using a quartz customer marshaler like this:
>    <quartz:jobDetail>
>      <quartz:jobDetail>
>        <quartz:jobDataAsMap>
>          <quartz:property key="xml"><![CDATA[
>            <hello>world</hello>
>          ]]></quartz:property>
>        </quartz:jobDataAsMap>
>      </quartz:jobDetail>
>    </quartz:jobDetail>
> This will set the <hello>world</hello> in the in message content and the 
> file will content this.
> - using another target service that populate the in message (with a 
> servicemix-bean endpoint for example).
> 
> PS: please, send this kind of messages on the users mailing list.
> 
> Regards
> JB
> 
> manosha wrote:
>> Hi 
>> 
>> I am trying to schedule file transfer for an FTP using ServiceMix
>> Quartz.I
>> tried the quratz end points in xbean as well as servicemix file.File
>> transer
>> is working fine but scheduleing is not happening.
>> the x bean content is below:
>> The blow xbean is working fine and this transfers any file at once.
>> 
>> <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0"
>> xmlns:tut="urn:servicemix:tutorial">
>> - <!--  add the sender endpoint here 
>>   --> 
>> - <ftp:sender service="test:receiver" endpoint="receiver"
>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/sender">
>> - <property name="marshaler">
>>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler"
>> /> 
>>   </property>
>>   </ftp:sender>
>> - <!--  add the poller endpoint here 
>>   --> 
>> - <ftp:poller service="test:pollerservice" endpoint="pollerendpoint"
>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/poller"
>> recursive="false"
>> targetService="test:receiver" targetEndpoint="receiver">
>> - <property name="marshaler">
>>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler"
>> /> 
>>   </property>
>>   </ftp:poller>
>>   </beans>
>> I added the below code after the first line
>> <quartz:endpoint service="test:receiver" endpoint="receiver"
>> targetService="test:receiver">
>>   <quartz:trigger>
>>     <quartz:simple repeatCount="0" repeatInterval="12000" />
>>   </quartz:trigger>
>> </quartz:endpoint>
>> 
>> If this is not the way to implement , then pls guide us how we can
>> implement
>> ftp file transefer using qauartz. I haven't got any lightneing document
>> on
>> this to help us.
>> 
>> Thanks in advance.
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Re%3A-Service-Mix-Quartz-tp25343278p25371998.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Service Mix Quartz

Posted by Pavel Khozhainov <pa...@consumerhealthtech.com>.
Small detail for SMX quartz (with camel)
- user must add non empty message

 I  use following code to schedule the events:

        <route errorHandlerRef="deadLetterErrorHandler">
            <from uri="quartz://groupA/balancesA/0/0/22/*/*/$"/>
                <setBody><el><![CDATA[<message>quartz</message>]]></el></setBody>
                <to uri="jms:queue:member.balances.daily.init" />
        </route>

if no message body is set
by 
<setBody><el><![CDATA[<message>quartz</message>]]></el></setBody>
exception occured and no event fired.
________
Pavel



----- Original Message ----- 
From: "Jean-Baptiste Onofré" <jb...@nanthrax.net>
To: <us...@servicemix.apache.org>
Sent: Tuesday, September 08, 2009 1:11 PM
Subject: Re: Service Mix Quartz


> Hi,
>
> To be honest, I don't understand your use case.
>
> The ftp:sender endpoint takes a incoming message, uses the marshaller to 
> transform the normalized message into a file and send via FTP.
>
> In your case, you don't have any incoming message. So I think that your 
> sender endpoint is called but doesn't do anything as it has nothing to 
> marshal and send on the FTP.
>
> Firing an event using quartz endpoint is not enough, you need to populate 
> the in message. To do it, you can:
> - using a quartz customer marshaler like this:
>   <quartz:jobDetail>
>     <quartz:jobDetail>
>       <quartz:jobDataAsMap>
>         <quartz:property key="xml"><![CDATA[
>           <hello>world</hello>
>         ]]></quartz:property>
>       </quartz:jobDataAsMap>
>     </quartz:jobDetail>
>   </quartz:jobDetail>
> This will set the <hello>world</hello> in the in message content and the 
> file will content this.
> - using another target service that populate the in message (with a 
> servicemix-bean endpoint for example).
>
> PS: please, send this kind of messages on the users mailing list.
>
> Regards
> JB
>
> manosha wrote:
>> Hi I am trying to schedule file transfer for an FTP using ServiceMix 
>> Quartz.I
>> tried the quratz end points in xbean as well as servicemix file.File 
>> transer
>> is working fine but scheduleing is not happening.
>> the x bean content is below:
>> The blow xbean is working fine and this transfers any file at once.
>>
>> <beans xmlns:ftp="http://servicemix.apache.org/ftp/1.0"
>> xmlns:tut="urn:servicemix:tutorial">
>> - <!--  add the sender endpoint here --> - <ftp:sender 
>> service="test:receiver" endpoint="receiver"
>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/sender">
>> - <property name="marshaler">
>>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler" 
>> /> </property>
>>   </ftp:sender>
>> - <!--  add the poller endpoint here --> - <ftp:poller 
>> service="test:pollerservice" endpoint="pollerendpoint"
>> uri="ftp://ftpuser:pwd$@172.20.10.206/ftpuser/data/poller" 
>> recursive="false"
>> targetService="test:receiver" targetEndpoint="receiver">
>> - <property name="marshaler">
>>   <bean class="org.apache.servicemix.components.util.BinaryFileMarshaler" 
>> /> </property>
>>   </ftp:poller>
>>   </beans>
>> I added the below code after the first line
>> <quartz:endpoint service="test:receiver" endpoint="receiver"
>> targetService="test:receiver">
>>   <quartz:trigger>
>>     <quartz:simple repeatCount="0" repeatInterval="12000" />
>>   </quartz:trigger>
>> </quartz:endpoint>
>>
>> If this is not the way to implement , then pls guide us how we can 
>> implement
>> ftp file transefer using qauartz. I haven't got any lightneing document 
>> on
>> this to help us.
>>
>> Thanks in advance.
>>