gpt4 book ai didi

rest - ColdFusion 10 - REST Web 服务错误 - 对象不是声明类的实例

转载 作者:行者123 更新时间:2023-12-01 04:43:52 25 4
gpt4 key购买 nike

首先,我不认为这是一个重复的问题,因为人们在执行不同的操作时收到了这个错误。

问题概述:

  • 网络服务工程
  • 在 x 时间后,它失败并产生下面所述的错误。
  • 没有代码更改发生,以便我们必须刷新。
  • 直到我们刷新服务,它才再次开始工作。
  • 没有模式,通常在刷新后数小时失败。

  • 我有一个 REST Web 服务,它从外部目录引用 CFC 并利用 CF 映射。 Web 服务在第一次通过 CF 管理员进入时工作。我和我的团队中的其他人都无法找出一种模式,但是在刷新 Web 服务几个小时后出现这种情况,它失败并生成以下错误:
    "Error","ajp-bio-8014-exec-1478","01/01/14","12:00:00","ApplicationName","object is not an instance of declaring class The specific sequence of files included or processed is: \myWeb\Site\REST\Service\Folder\myService.cfc'' "
    java.lang.IllegalArgumentException: object is not an instance of declaring class
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ObjectOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:258)
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
    at coldfusion.rest.method.dispatch.CFExceptionHandlingDispatcher.dispatch(CFExceptionHandlingDispatcher.java:63)
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
    at coldfusion.rest.servlet.CFRestServletContainer.service(CFRestServletContainer.java:143)
    at coldfusion.rest.servlet.CFRestServletContainer.service(CFRestServletContainer.java:88)
    at coldfusion.rest.servlet.CFRestServlet.invoke(CFRestServlet.java:384)
    at coldfusion.rest.servlet.RestFilter.invoke(RestFilter.java:58)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.rest.servlet.RestWrapRequestFilter.invoke(RestWrapRequestFilter.java:48)
    at coldfusion.rest.servlet.CFRestServlet.invoke(CFRestServlet.java:356)
    at coldfusion.rest.servlet.CFRestServlet.service(CFRestServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.seefusion.Filter.doFilter(Filter.java:49)
    at com.seefusion.SeeFusion.doFilter(SeeFusion.java:1500)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:97)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:437)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:311)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:192)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:472)
    at com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36)
    at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:79)
    at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    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.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

    就像我说的那样,我们刷新了服务并且它可以工作,但是只有时间告诉我们它会再次失败,而且没有任何模式,代码也没有任何变化。让我给你一个更简单的服务版本:
    <cfcomponent rest="true" restPath="/" extends="utils.utils">
    <cffunction name="generatePDF" produces="application/json" access="remote" returnType="any" httpMethod="POST" restPath="service-pdf">
    <cfargument name="id" required="true" type="string" restargsource="form" />
    <cfset var result = "" />
    <cfset var remote_address = cgi.remote_addr />

    <cfset s3Obj = new utils.s3(accessKeyId="mySecretID", secretAccessKey="mySecretKey") />
    <cfset path = "the\path\to\store\the\pdf\" />
    <cfset objExpSub = new expenses.FormFill() />
    <cfset expenseSubmission = objExpSub.geSubmission(arguments.id) />
    <cftry>
    <cfset result = objExpSub.generatePDF(expenseSubmission, path) />
    <cfcatch type="any">
    <cfset result = {message="#cfcatch.message#", detail="#cfcatch.detail#", stacktrace="#cfcatch.stacktrace#"}>
    <cfreturn serializeJSON(result) />
    <cfabort>
    </cfcatch>
    </cftry>

    <cfif result>
    <cfset result = {result = true} />
    </cfif>

    <cfreturn serializeJSON(result) />
    </cffunction>
    </cfcomponent>

    然后有一个 .NET Web 服务调用我们的 Web 服务。 REST Web 服务位于其自己的目录中,目前不使用 Application.cfc。看不出这将如何导致任何问题。

    我们在想的是这个问题,从我所看到的一切来看,这与服务文件夹和在服务中实例化的关联类被自定义 CF 映射引用的事实有关。因此,它们不存在于 CF 根目录中,也不存在于同一文件夹中。

    编辑 (03/03/2014): 我确实忘记提到的是 <cfset objExpSub = new expenses.FormFill() />正在通过 CF 映射实例化一个对象,但该映射是针对我们的 ColdBox 应用程序组件的。我不是 ColdBox 方面的专家,但这会不会有问题?

    更新 (03/03/2014):我们将从 ColdBox 应用程序目录中剥离组件,看看我们得到什么样的结果。我猜我们仍然会看到错误,但只是试图消除另一种可能性。将更新我们的发现。

    这就是我要说的全部内容,所以如果您需要比这更多的信息,请具体说明,因为我无法提供更多信息。

    重复我自己,Web 服务有效!它只是无缘无故地随机中断并抛出一个对我们任何人都毫无意义的错误。

    提前感谢您的帮助。

    最佳答案

    我有这个问题的简化版本。我有一个 CFC,它是作为 CF 10 REST 服务的独立 CFC(不包括,无 CF 映射)设置。它会工作一段时间然后失败,在 1 小时到 8 小时之间。

    但是,我的源代码存储在网络安装上,而不是本地驱动器上。当 CFC 移到本地驱动器时,它变得可靠了。

    关于rest - ColdFusion 10 - REST Web 服务错误 - 对象不是声明类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104883/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com