Skip to main content
Announcements
July 15, NEW Customer Portal: Initial launch will improve how you submit Support Cases. IMPORTANT DETAILS
cancel
Showing results for 
Search instead for 
Did you mean: 
balatrash
Contributor
Contributor

tRules throwing exception and cannot find DRL file.

Hello,

 

I implemented an embedded rule in my metedata in Talend v6.3.1. In my studio, the job runs perfectly fine. But when I build or publish job to TAC I am getting the below error stack trace:

 

### Job STARTED at 2019/07/15 12:07:39 (jobId=20190712_000622_kZLPj, jobExecutionId=20190715120739_sBJAf) ###
[INFO ]: mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT - TalendJob: 'VERSION_AGE_FACT' - Start.
[statistics] connecting to socket on port 10177
[statistics] connected
[FATAL]: mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT - tRules_1 Unable to get LastModified for ClasspathResource
[INFO ]: mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT - tSendMail_1 - Connection attempt to 'mailhost.fr.murex.com'.
Exception in component tRules_1
java.lang.RuntimeException: Unable to get LastModified for ClasspathResource
at org.drools.core.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:212)
at org.drools.core.io.impl.ClassPathResource.getInputStream(ClassPathResource.java:149)
at org.drools.compiler.compiler.DrlParser.parse(DrlParser.java:150)
at org.drools.compiler.compiler.DrlParser.parse(DrlParser.java:144)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.drlToPackageDescr(KnowledgeBuilderImpl.java:445)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addPackageFromDrl(KnowledgeBuilderImpl.java:433)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addKnowledgeResource(KnowledgeBuilderImpl.java:653)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:2164)
at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:2153)
at mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT$1KnowledgeBase_tRules_1.readKnowledgeBaseDRL(VERSION_AGE_FACT.java:5640)
at mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT$1KnowledgeBase_tRules_1.readKnowledgeBase(VERSION_AGE_FACT.java:5630)
at mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT.tOracleInput_3Process(VERSION_AGE_FACT.java:5678)
at mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT.tOracleInput_2Process(VERSION_AGE_FACT.java:3714)
at mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT.runJobInTOS(VERSION_AGE_FACT.java:6986)
at mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT.main(VERSION_AGE_FACT.java:6767)
Caused by: java.io.FileNotFoundException: 'rules/final/version_age_fact_0_1/Rule10.1.drl' cannot be opened because it does not exist
at org.drools.core.io.impl.ClassPathResource.getURL(ClassPathResource.java:173)
at org.drools.core.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:185)
... 14 more
[INFO ]: mxdw_version_age.version_age_fact_0_1.VERSION_AGE_FACT - tSendMail_1 - Connection to 'mailhost.fr.murex.com' has succeeded.

### Job ENDED WITH ERROR at 2019/07/15 12:07:45 (jobId=20190712_000622_kZLPj, jobExecutionId=20190715120739_sBJAf) ###
[statistics] disconnected

 

I copied this path: 'rules/final/version_age_fact_0_1/Rule10.1.drl'  to the root folder where the .bat file is and the job worked perfectly on my local machine. So in reality Talend doesn't know that he has to go to 'src/main/resources/rules/final/version_age_fact_0_1/Rule10.1.drl'. 

 

Is there a way to force to the Rule file ClassPath or set it in the project settings of the Studio? This is a very interesting topic for me and team as we attempting to implement a Business Rule DQ gate using Drools.

 

Thank you,

Bahaa

Labels (2)
3 Replies
Anonymous
Not applicable

Hello,

Here exists a known issue in V 6.3.1. We have made a testing on 7.1.1, this component works.

With your subscription solution, could you please create a support case on talend support portal? Our colleagues from support team will check your issue to see if a patch will be needed.

Best regards

Sabrina

 

Vinnie_Pisaniello
Contributor
Contributor

I"m getting the same error on 7.3.1, anyone know whats happening?

 

[FATAL] 03:47:39 truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW- survive_AdditionalFields_1_tRuleSurvivorship_1 Unable to get LastModified for ClasspathResource

java.lang.RuntimeException: Unable to get LastModified for ClasspathResource

   at org.drools.core.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:212) ~[drools-core-6.2.0.jar:6.2.0.Final]

   at org.drools.core.io.impl.ClassPathResource.getInputStream(ClassPathResource.java:149) ~[drools-core-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.compiler.DrlParser.parse(DrlParser.java:150) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.compiler.DrlParser.parse(DrlParser.java:144) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.drlToPackageDescr(KnowledgeBuilderImpl.java:445) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addPackageFromDrl(KnowledgeBuilderImpl.java:433) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addKnowledgeResource(KnowledgeBuilderImpl.java:653) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:2164) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:2153) ~[drools-compiler-6.2.0.jar:6.2.0.Final]

   at org.talend.survivorship.SurvivorshipManager.initKnowledgeBase(SurvivorshipManager.java:144) ~[org.talend.dataquality.survivorship-8.0.9.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.survive_AdditionalFields_1_tHashInput_4Process(prop_Tommi_j01_Writeback_to_DW.java:44899) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tHashInput_3Process(prop_Tommi_j01_Writeback_to_DW.java:28919) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tDBInput_4Process(prop_Tommi_j01_Writeback_to_DW.java:16850) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tDBRow_10Process(prop_Tommi_j01_Writeback_to_DW.java:15166) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tDBInput_2Process(prop_Tommi_j01_Writeback_to_DW.java:14522) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tDBInput_7Process(prop_Tommi_j01_Writeback_to_DW.java:12333) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tDBInput_1Process(prop_Tommi_j01_Writeback_to_DW.java:11338) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.tDBRow_1Process(prop_Tommi_j01_Writeback_to_DW.java:62745) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.runJobInTOS(prop_Tommi_j01_Writeback_to_DW.java:64609) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

   at truedatapropagation.prop_tommi_j01_writeback_to_dw_0_1.prop_Tommi_j01_Writeback_to_DW.main(prop_Tommi_j01_Writeback_to_DW.java:64044) [prop_tommi_j01_writeback_to_dw_0_1.jar:?]

Caused by: java.io.FileNotFoundException: 'metadata/survivorship/nmss.org.talend.survivorship.persons_AdditionalFields/drools_0.1.package' cannot be opened because it does not exist

   at org.drools.core.io.impl.ClassPathResource.getURL(ClassPathResource.java:173) ~[drools-core-6.2.0.jar:6.2.0.Final]

   at org.drools.core.io.impl.ClassPathResource.getLastModified(ClassPathResource.java:185) ~[drools-core-6.2.0.jar:6.2.0.Final]

Anonymous
Not applicable

Hello,

Are you getting this exception" Caused by: java.io.FileNotFoundException:rules/final/version_age_fact_0_1/Rule10.1.drl' cannot be opened because it does not exist" as well?

Could you please post your job design screenshots on community? Which will be helpful for us to address your issue. Please mask your sensitive data.

Best regards

Sabrina