Cfwheels Element插件在CFML结构中未定义

时间:2015-02-12 07:05:59

标签: coldfusion cfwheels

我有一个问题,我收到了#34; Element Plugins未确定"错误。 我在Coldfusion 10上使用cfwheels v1.3。

问题是它在我的本地机器上完美运行,该机器使用的是coldfusion 11但具有完全相同的代码库。

这是我目前得到的错误转储。

错误发生在D:/Websites/nxtgig.involveid.com/wwwroot/ngTesting/wheels/global/public.cfm:line 363 来自D:/Websites/nxtgig.involveid.com/wwwroot/ngTesting/wheels/events/onrequestend/debug.cfm:第130行 来自D:/Websites/nxtgig.involveid.com/wwwroot/ngTesting/wheels/global/cfml.cfm:第117行 来自D:/Websites/nxtgig.involveid.com/wwwroot/ngTesting/wheels/events/onrequestend.cfm:line 7

361 :       else
362 :       {
363 :           loc.returnValue = application[loc.appKey][arguments.name];
364 :       }
365 :   </cfscript>

您可以在此处看到错误,因为它位于页面底部。 http://gig.nxt.link/ngtesting/index.cfm?controller=authenticate&action=login

整个错误转储

coldfusion.runtime.UndefinedElementException: Element plugins is undefined in a CFML structure referenced as part of an expression.
    at coldfusion.runtime.CfJspPage.ArrayGetAt(CfJspPage.java:974)
    at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:985)
    at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:980)
    at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:690)
    at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:672)
    at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:637)
    at coldfusion.runtime.CfJspPage._arrayGetAt(CfJspPage.java:624)
    at cfpublic2ecfm882042214$funcGET.runFunction(D:\Websites\nxtgig.involveid.com\wwwroot\ngTesting\wheels\global\public.cfm:363)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
    at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2659)
    at cfdebug2ecfm1977824709.runPage(D:\Websites\nxtgig.involveid.com\wwwroot\ngTesting\wheels\events\onrequestend\debug.cfm:130)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:444)
    at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2799)
    at cfcfml2ecfm1611265968$func$INCLUDEANDOUTPUT.runFunction(D:\Websites\nxtgig.involveid.com\wwwroot\ngTesting\wheels\global\cfml.cfm:117)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
    at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2624)
    at cfonrequestend2ecfm279799770$funcONREQUESTEND.runFunction(D:\Websites\nxtgig.involveid.com\wwwroot\ngTesting\wheels\events\onrequestend.cfm:7)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
    at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:108)
    at coldfusion.runtime.AppEventInvoker.onRequestEnd(AppEventInvoker.java:343)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:445)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
    at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
    at coldfusion.CfmServlet.service(CfmServlet.java:219)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
    at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:299)
    at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
    at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
    at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:246)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at sun.reflect.GeneratedMethodAccessor5714.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:472)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:312)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:507)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36)
    at sun.reflect.GeneratedMethodAccessor5713.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79)
    at sun.reflect.GeneratedMethodAccessor5712.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:53)
    at com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:41)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:414)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:204)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

1 个答案:

答案 0 :(得分:2)

我只是将我的评论浓缩成一个格式更好的答案。

如果代码库确实相同,则配置必须以某种方式不同。保存到数据库的内容不同,或者应用程序使用无效数据保持活动状态。

由于错误在这一行上绊倒:

363 :    loc.returnValue = application[loc.appKey][arguments.name];

我们知道loc.appkeyarguments.nameplugins值为loc.appkey时失败。它不是arguments.name所以必须applicationTimeout导致错误。

这里的红旗是它是一个应用程序变量跳闸。应用程序变量从首次创建应用程序变量的位置开始持续,直到服务器重新启动或应用程序已过期(达到config/app.cfm且没有应用程序活动。每次访问应用程序都会重置计时器。)

此活动计时器与应用程序名称绑定。这是为什么为您的应用程序提供唯一名称非常重要的众多原因之一。在共享服务器上(特别是),你永远不想对名字平淡无奇,比如&#34; shoppingcart&#34;。更改应用程序名称并访问网站会再次启动应用程序。之前的应用程序数据仍然存在,直到它到期之前的任何时间限制。

由于变量在应用程序范围内,因此这是追踪它的最佳线索。设置应用程序变量的东西没有发生。

它可能是在你的本地机器上工作,因为嘿,事情发生,开发盒重新启动,服务重新启动,应用程序闲置,但公共服务器获得流量,搜索引擎和客户端访问发生了什么变化。如果超时设置为24小时且一个人每23小时和59分钟至少访问一次,则应用程序数据将保持活动状态,直到服务器/服务/强制重启。

我可以从一些谷歌上看到,cfwheels嵌套许多包括(出于正当理由)所以这些功能不直接在application.cfc中。您可以在this.name中更改应用程序名称。经过一些谷歌搜索,我觉得这可能是最好的方法。只需在名称中添加任何字符即可。

但是,通过Google搜索,我发现Switching environments on CFWheels

您可以在其他应用程序中强制执行此操作(主要是因为我已将其键入)。

application.cfc的第一行通常会设置onRequestStart(),这是您的应用程序名称。如果您愿意,可以更改它,下次访问就像系统重启后第一次访问一样。

另一种方法是将这行代码添加到<cffunction name="onRequestStart"> <cfargument name="requestname" required=true/> <cfset structClear(Application)> <cfset structClear(Session)> <cfset onApplicationStart()> <cfset onSessionStart()> ... </cffunction> 这样的

  

OnRequestStart是始终在请求中调用的第一个事件处理程序。 OnApplicationStart仅在需要时运行,而onSessionStart,类似地,仅在创建会话时运行。

function onRequestStart(requestname) {
  structClear(Application);
  structClear(session);
  onApplicationStart();
  onSessionStart();
  ...
}

或者,对于cfscript语法。

?rextart&rexpw=mike

您也可以在if中包含这些内容。像这样..哈希是哈希密码。在这种情况下,散列是&#34; mike&#34;的散列。如果网址附加<cffunction name="onRequestStart"> <cfargument name="requestname" required=true/> <cfif isDefined("url.rextart") and isDefined("url.rexpw") and hash(url.rexpw) is "18126E7BD3F84B3F3E4DF094DEF5B7DE"> <cfset structClear(Application)> <cfset structClear(Session)> <cfset onApplicationStart()> </cfif> </cffunction> ,则会触发。 (您应该选择自己的哈希字符串。)

{{1}}

我希望所有这一切都对你有帮助。