2016-06-15 57 views
0

我已经创建了一个测试目的自定义Talend组件;遵循您的开始,主并结束javajet文件:Talend - 执行控制台不显示自定义消息

开始:

<% 
    imports... 

<% 
    CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument; 
    INode node = (INode)codeGenArgument.getArgument(); 
    String cid = node.getUniqueName();  
%> 
System.out.println("I am the begin section"); 

for (int myvar_<%=cid%>=0; myvar_<%=cid%><10; myvar_<%=cid%>++) { 

主:

<% 
    imports... 
%> 
<% 
    CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument; 
    INode node = (INode)codeGenArgument.getArgument(); 
    String cid = node.getUniqueName(); 
%> 
System.out.print("myvar is "+myvar_<%=cid%>); 

末:

<% 
    imports... 
%> 
<% 
    CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument; 
    INode node = (INode)codeGenArgument.getArgument(); 
    String cid = node.getUniqueName(); 
%> 
} 

System.out.println("I am the end section"); 

问题是消息不会被打印在使用System.out.println()时进行控制台。

这是执行的例子:

Starting job myjob at 07:16 15/06/2016. 
[statistics] connecting to socket on port 4009 
[statistics] connected 
[statistics] disconnected 
Job myjob ended at 07:16 15/06/2016. [exit code=0] 

为多,我发现this链接,其他用户了Talend描述了同样的问题。不过,就我而言,我的编译器符合性级别设置为1.8,并且安装了相同的JRE。

任何想法?谢谢!

编辑1

把所产生的代码,由@garpitmzn建议:

/** 
    * [tOrionTest_1 begin ] start 
    */ 





     ok_Hash.put("tOrionTest_1", false); 
     start_Hash.put("tOrionTest_1", System.currentTimeMillis()); 


    currentComponent="tOrionTest_1"; 


     int tos_count_tOrionTest_1 = 0; 

System.out.println("I am the begin section"); 

for (int myvar_tOrionTest_1=0; myvar_tOrionTest_1<10; myvar_tOrionTest_1++) { 





/** 
* [tOrionTest_1 begin ] stop 
*/ 

    /** 
    * [tOrionTest_1 main ] start 
    */ 





    currentComponent="tOrionTest_1"; 


System.out.print("myvar is "+myvar_tOrionTest_1); 




    tos_count_tOrionTest_1++; 

/** 
* [tOrionTest_1 main ] stop 
*/ 

    /** 
    * [tOrionTest_1 end ] start 
    */ 





    currentComponent="tOrionTest_1"; 


} 

System.out.println("I am the end section"); 


ok_Hash.put("tOrionTest_1", true); 
end_Hash.put("tOrionTest_1", System.currentTimeMillis()); 




/** 
* [tOrionTest_1 end ] stop 
*/ 
+0

当你部署了你的组件并在工作中使用它时,你能点击studio的生成代码标签,看看你的组件生成了什么代码,可能是你的system.out没有问题但与其他部分..你可以分享你的组件生成的代码。 – garpitmzn

+0

已添加。非常感谢! – frb

+0

Ey!我将“可启动”属性更改为“true”,现在它可以工作。看起来组件从来没有运行,因为它是工作链中的第一个,并且不可启动,这意味着(如果我理解的很好),它期望从未到来的输入(来自可启动组件)。 – frb

回答

0

我改变了 “启动的” 属性设置为 “真”,现在它的工作原理。看起来组件从来没有运行,因为它是工作链中的第一个,并且不可启动,这意味着(如果我理解的很好),它期望从未到来的输入(来自可启动组件)。