2012-09-11 41 views
1
中未定義

我每天收到錯誤Element XMLZONE is undefined in REQUEST幾十次。元素XMLZONE在請求

PageDisplay.cfm調用request.xmlzone這是通過頁面設置ZoneManager.cfm,使用以下(削減)代碼

<cfscript> 
variables.aZoneInfo = XmlSearch(application.xmlZones, "//zone[position() = 1]"); 
try { 
    request.xmlZone = ToString(variables.aZoneInfo[1]); 
} 
catch(any expt) 
{ 
    variables.objZoneDAO = CreateObject("component", "#application.sComponentDir#ZoneDAO").init(application.sDSN); 
    variables.objZoneDAO.Read(variables.objZone, 1); } 
</cfscript> 

現在,XML永遠不會改變那麼值得將XML文件/節點作爲變量添加到PageDisplay.cfm是否值得?我也想知道爲什麼會失敗 - 爲什麼?

感謝,

JJ

回答

2

好吧,如果調用ToString(variables.aZoneInfo[1]);失敗,那麼request.xmlZone將不會設置。這是值得懷疑的toString()本身將失敗,但如果variables.aZoneInfo不是一個至少有一個元素的數組,那麼會導致你悲傷。你應該檢查這個,而不是假設它。

如果必須設置request.xmlZone,那麼你需要在你的catch塊中做比你現在做的更多的事情。至少你應該記錄被捕獲的異常,以便當你走的時候「我想知道爲什麼發生了?」你有一個日誌來引用。

我懷疑你的應用程序超時,當你在做你的xmlSearch()時,application.xmlZones不包含你認爲它包含的東西。但這是一個猜測。

+0

謝謝 - 我會研究這一點。目前,我正在使用'cfxml'來設置一個變量,並使用它來替代,因爲XML永遠不會改變(我已經順便把這個站點改爲了 - 這不是我自己的工作!) – pee2pee