找不到ColdFusion cleanUp方法,无法终止会话

时间:2017-06-05 16:08:21

标签: java coldfusion

我刚刚将我们的网站从Windows 2003服务器移动到Windows 2008 R2服务器。除了一行代码外,一切似乎都正常工作。

<cfset CreateObject('java', 'coldfusion.runtime.SessionTracker').cleanUp(application.applicationName, sid) />

我们看到了这个错误:

  

找不到cleanUp方法   要么没有指定方法名称和参数类型的方法,要么使用ColdFusion无法可靠解密的参数类型重载cleanUp方法。 ColdFusion找到了与提供的参数匹配的0个方法。如果这是一个Java对象并且您验证该方法存在,则可能需要使用javacast函数来减少歧义。“

我已确保所有文件都已复制到新服务器,所有设置都相同,我甚至清除了ColdFusion类缓存并重新启动了服务器。以下是该功能的完整代码。是什么导致这种情况以及如何解决?

<cfif isDefined("session.CFID") AND isDefined("session.cftoken")>
    <cfset sid = session.cfid & '_' & session.cftoken />
    <cfset CreateObject('java', 'coldfusion.runtime.SessionTracker').cleanUp(application.applicationName, sid) />
</cfif>

更新

我把它剥离到最低限度。我在几个网站上找到了相同的基本代码。前三行工作正常。一旦我尝试分配userSession,我就会收到500服务器错误。

<cfset app = application.applicationName>
<cfset sessionTracker = CreateObject('java', 'coldfusion.runtime.SessionTracker')>
<cfset sessionCollection = sessionTracker.getSessionCollection(app)>
<cfset userSession = sessionTracker.getSession(app, sessionID))>

我可以转储sessionTracker并确认,sessionID是一个有效值。

0 个答案:

没有答案