2016-02-26 24 views
0

我有一個奇怪的問題。在下面的代碼中,我創建了一個簡單的元素數組x,以及一個簡單的變量y。在數組的情況下,我將第一個元素的值設置爲某些文本,就像我對變量所做的那樣。當我嘗試使用logger.info輸出文本時,出現一個錯誤,我沒有得到這個變量。我正在使用歡樂連接3.3.1.7856。歡樂連接錯誤:「...不是xml對象」當試圖從數組輸出文本

代碼如下。請注意,這是整個通道中的唯一代碼,全部在單個源變換器步驟中。

var x = []; 

x[0] = 'abc'; 

var y = 'xyz'; 

logger.info('y: ' + y.toString()); 

logger.info('attachmentLength: ' + x.length); 

logger.info.(x[0].toString()); 

前兩個「logger.info」命令工作得很好。但是,在嘗試執行最後一個時,會記錄下面的錯誤。

源代碼如下:

170: var x = []; 

171: x[0] = 'abc'; 

172: var y = 'xyz'; 

173: logger.info('y: ' + y.toString()); 

174: logger.info('attachmentLength: ' + x.length); 

175: logger.info.(x[0].toString()); 

176: if ('xml' === typeof msg) { 

177: if (msg.hasSimpleContent()) { 

178: msg = msg.toXMLString(); 

179: } 

LINE NUMBER: 175 

DETAILS: TypeError: function info() {/* 

void info(java.lang.Object,java.lang.Throwable) 

void info(java.lang.Object) 

*/} 

is not an xml object. 

通知書線176-179不是我的腳本的一部分。這是歡樂加入的東西。

幾個星期前,我有另一個問題,其中一個變量被視爲一個Java變量而不是一個Javascript變量。解決方案是對變量做一些事情,使其成爲Javascript而不是Java變量。不幸的是,我不記得有關該問題或解決方案再次找到它,或者甚至在我的代碼中找到我所做的更改。也許這是我可以在這裏嘗試的。

難道數組被視爲Java數組而不是Javascript數組?如果是這樣,我可以「強制」它是一個JavaScript數組,不知何故?

還有一點要注意 - 所有數據類型(包括源連接器數據類型)都設置爲「原始」,這意味着任何應用程序都不需要任何源數據以任何特定格式(包括XML)。

我完全喪失瞭如何解決這個問題。任何援助將不勝感激。

感謝,

MMall

回答

0

是不是您的錯誤「。」導致你的問題?相反的:

logger.info.(x[0].toString()); 

你應該有:

logger.info(x[0].toString()); 
+0

哇!好的。我現在感到很傻。就是這樣。謝謝。 –

+0

幾乎不可能看到你自己的錯字:) – LeeCambl

0

我猜想進行了更改,以支持JSON對象,這就是爲什麼它沒有按照預期的方式工作。因此,您可以使用以下其中一種:

var x = new Array(); 
x[0] = 'abc'; 
logger.info("Length: " + x.length); 
logger.info(x[0].toString()); 

var y = []; 
y[0] = 'dfg'; 
logger.info("Length: " + y.length); 
logger.info(JSON.stringify(y[0])); 
相關問題