Six Stars

Talend created SOAP service request as input for ActiveMQ queue

Sorry for the newbie question, but I created a SOAP webservice in Talend (6.2.1 community edition) which expects a (complex) XML as payload. I then want to send this payload to a queue for processing in a later stage by a different application. So I was thinking off a flow like this:
tMomConnection
|
OnSubJobOk
|
tESBProviderRequest -> tMomOutput -> tXMLMap -> tESBProviderResponse
I use an existing connection to ActiveMQ which works fine, the mesage body is set to Bytes Message.
The results are:
Execution failed : Failed to generate code.

I expect the problem to be between the fact that I receive a payload and send a message to the queue.
Anybody a clue on how to solve this?
2 REPLIES
Seventeen Stars

Re: Talend created SOAP service request as input for ActiveMQ queue

This error can only appear if some settings in the component are incorrect. But actually this should not happen.
I suggest you deactivate at first the MOM components and check again if you can build the job.
This way you will find out which component causes the error.
After that we can try to find what went wrong in the component settings.
Six Stars

Re: Talend created SOAP service request as input for ActiveMQ queue

Hi,
Deactivating the tMomOoutput gives several errors due to the fact that you have no valid flow. Running with only:
tMomConnection
|
OnSubJobOk
|
tESBProviderRequest -> tXMLMap -> tESBProviderResponse
Works fine.
tMomConnection
|
OnSubJobOk
|
tESBProviderRequest -> tConvertType -> tMomOutput -> tXMLMap -> tESBProviderResponse
And when I convert the payload (Document) to message (String) also works. I am able to retrieve the message from the queue and process this in a later stage. Only the "message" is corrupt after the tMomOutput, I cannot post it to a second queue. Error "Type mismatch: cannot convert from String to bytes[]" which is what the job just did for the first post to a queue? The schema for the second MomOutput actually states an input of type bytes[] and the first Momoutput produces a bytes[].
Now trying to work with a second job/route which will consume the first message on the queue and dispatch this to the correct queues.