我将一个导出 cfc 从另一个应用程序的查询对象创建一个 Excel 文件复制到了这个应用程序,但由于某种原因它失败了。我在同一台服务器上的其他几个应用程序中使用了完全相同的 cfc。它仍然可以在其他应用程序中运行,但在此应用程序中引发以下错误“服务器错误:服务器遇到内部错误,无法完成您的请求。应用程序服务器正忙。并发请求太多或服务器仍然存在正在启动。” 向用户显示,并在 exception.log 文件中记录以下错误。错误发生在第 78 行,但如果我使程序跳过该条件,则它在第 86 行失败。
异常日志
"错误","jrpp-5132","05/22/13","08:50:15","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 /runtime/Struct;IIZ)V 在coldfusion.runtime.CFPage.SpreadSheetFormatCell(CFPage.java:7318) 在coldfusion.runtime.CFPage.SpreadSheetFormatCell(CFPage.java:7312) 在cfpExport2ecfc955548417$funcQUERYTOEXCEL.runFunction(/..pathtoapp. ./plugins/pExport.cfc:79) 在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 Server
将不胜感激任何关于正在发生的事情的建议。谢谢。