我复制了一个导出cfc,它从另一个应用程序的查询对象创建一个Excel文件到这个应用程序,但由于某种原因它失败了。我在同一台服务器上的其他几个应用程序中使用了完全相同的cfc。它仍然在其他应用程序中工作,但它在此应用程序中引发以下错误“服务器错误:服务器遇到内部错误,无法完成您的请求。应用程序服务器正忙。要么有太多并发请求或服务器仍然正在开始。“将显示给用户,并在exception.log文件中记录以下错误。第78行出现错误,但是如果我导致程序跳过该条件,那么它就会在第86行失败。
exception.log
“错误”, “jrpp-5132”, “13年5月22日”, “8点50分十五秒”, “192194B933ECEF2F12871BE3F495FBA0”,“coldfusion.excel.Excel.formatCell(Lcoldfusion / EXCEL / ExcelInfo; Lcoldfusion / runtime / Struct; IIZ)V包含或处理的特定文件序列为:/..pathtoapp../index.cfm,line:79“ java.lang.NoSuchMethodError: coldfusion.excel.Excel.formatCell(Lcoldfusion / EXCEL / ExcelInfo; Lcoldfusion /运行/结构; IIZ)V at coldfusion.runtime.CFPage.SpreadSheetFormatCell(CFPage.java:7318) at coldfusion.runtime.CFPage.SpreadSheetFormatCell(CFPage.java:7312) 在cfpExport2ecfc955548417 $ funcQUERYTOEXCEL.runFunction(/ .. pathtoapp ../ plugins / pExport.cfc:79) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
来自cfc文件的代码段
<cfscript>
//Create a new Excel spreadsheet object.
theSheet = SpreadsheetNew( Arguments.FileName );
if( Arguments.Title neq "" ){
/*LINE79*/ SpreadSheetFormatCell(theSheet, { bold="true", alignment="center" } ,1,1);
SpreadsheetMergeCells(theSheet,1,1,1, ListLen(Arguments.Columns, '|' ) );
SpreadsheetSetCellValue(theSheet,Arguments.Title,1,1);
}
</cfscript>
<cfif Arguments.HeaderTitles neq "">
<cfset counter = 1 >
<cfloop index="Header" list="#Arguments.HeaderTitles#" delimiters="|">
<cfset SpreadSheetFormatCell(theSheet, { bold="true", alignment="center" } ,2,counter) >
<cfset SpreadsheetSetCellValue(theSheet, Header, 2, counter) >
<cfset counter = counter + 1>
</cfloop>
<cfelse>
<cfset counter = 1 >
<cfloop index="Header" list="#Arguments.Columns#" delimiters="|">
<cfset SpreadSheetFormatCell(theSheet, { bold="true", alignment="center" } ,2,counter) ><!---LINE 86--->
<cfset SpreadsheetSetCellValue(theSheet,Header,2,counter) >
<cfset counter = counter + 1>
</cfloop>
</cfif>
系统: Coldfusion 9, Coldbox 3.5框架, Linux服务器
不胜感激任何有关正在发生的事情的建议。感谢。