Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Talend Cloud AWS EU Scheduled Outage: Starting Tues 26 May 21:00 CEST with expected completion Wed 27 May 01:00 CEST
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

two custom components cannot run one job

Hello,

 

I have develop two custom components (name: Producer and Register) in the same family (name: IBIT) and category (big data)  with version component-api 1.1.4 and talend-component-maven-plugin 1.1.5. The two components run single in the job but not together. I get the error:

 

Exception in component IBITProducer_1 (test)
java.lang.IllegalArgumentException: Can't find IBIT#Producer
at project.test_0_1.test$1tWaitForFile_1Thread.lambda$0(test.java:1277)
at java.util.Optional.orElseThrow(Optional.java:290)

 

My job look like:

 

0683p000009M2Gq.png

 

What can I do?

Labels (4)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Hi

 

Currently we enforce a single "component" - understand this as deployed component module - to own a family to guarantee we have some interoperability between components.

 

In next version - 1.1.6 - we will enable to have a component depending on another one and deploying both with the registration of the root component but still not to deploy 2 component modules in the same family for the same reason.

 

Please use two families - but it can use the same category - or merge them both through your build - you can always do a shade of both modules and deploy that.

View solution in original post

13 Replies
Anonymous
Not applicable
Author

Are the components packaged in separated jar files ? if yes, this is not supported for the moment for the same family. So please package all the components of the same family in one single jar.

Anonymous
Not applicable
Author

yes they are seperated eclipse/maven project. Can I have seperate maven/eclipse project and pack to one jar?

Anonymous
Not applicable
Author

Hi

 

Currently we enforce a single "component" - understand this as deployed component module - to own a family to guarantee we have some interoperability between components.

 

In next version - 1.1.6 - we will enable to have a component depending on another one and deploying both with the registration of the root component but still not to deploy 2 component modules in the same family for the same reason.

 

Please use two families - but it can use the same category - or merge them both through your build - you can always do a shade of both modules and deploy that.

Anonymous
Not applicable
Author

ok now I do not receive this error but the components doesnt start. Either IBITRegister starts (this module produces messages at regular intervals), but then twaitforfile does not respond. Only if I deactivate the module IBITProducer twaitforfile reacts when new files arrive.

Anonymous
Not applicable
Author

is the IBITProducer component correctly receiving and handling the records from the tWaitForFile ?
Can you please debug your component and see if the component is working correctly.
Here is a chapter from the documentation explaining how to debug https://talend.github.io/component-runtime/main/1.1.7/studio.html#_debugging_your_custom_component_i...

Anonymous
Not applicable
Author

yes because If I deactivate IbitRegister_1 and tMomOutput_1 the tWaitForFile and IBITProducer works correctly. It always works only one.

Anonymous
Not applicable
Author

Hi,

I am creating custom component using Talend component starter kit . I am trying  to get values of talend paramters in service.java. please help me get values directly,gettter methods of datastore giving null values.

I need to get below screen shot parameters values directly in service.java.

 

these ElementParameterParser.getValue() method is usefull for jet frame work.

String serverAddr = ElementParameterParser.getValue(node, "__SERVERADDR__");
String port = ElementParameterParser.getValue(node, "__PORT__");

thanks,

venkat.

 


parameters.png
Anonymous
Not applicable
Author

Hi,

I am creating custom component using Talend component starter kit . I am trying  to get values of talend paramters in service.java. please help me get values directly,gettter methods of datastore giving null values.

I need to get below screen shot parameters values directly in service.java.

 

these ElementParameterParser.getValue() method is usefull for jet frame work.

String serverAddr = ElementParameterParser.getValue(node, "__SERVERADDR__");
String port = ElementParameterParser.getValue(node, "__PORT__");

thanks,

venkat.

 


parameters.png
parameters.png
Anonymous
Not applicable
Author

Hello @Venkat_C ,

 

you get it in the component (which is intantiated per parameter) and you propagate it to the service through a standard parameter passing pattern, you don't inject into a service parameters because services are shared between components (single instance per JVM).

 

Romain