4

Java コンポーネントを使用してクレジット カード プロバイダーと統合する ColdFusion のサイトがあります。

Java オブジェクトで特定の関数を呼び出す場合:

<cfset ResponseObject = AgentObject.request(RequestObject, LogObject)>

ResponseObject、AgentObject、および LogObject は、次のように作成された Java オブジェクトです。

<cftry>

    <cfset AgentObject = createObject("java","com.providername.client.Agent")>

    <cfcatch type="any">
        Do something.
    </cfcatch>
</cftry>

ページ上に以下が出力され、実行が停止します。

<head>
<title>JRun Servlet Error</title>
</head>
<h1>500 Transaction fails verification<br>
    BadRequest: Request fails verification checks<br>
    BadCardNumber: Card length was 16, but we were expecting 0<br>
</h1>
<body>
Transaction fails verification<br>
BadRequest: Request fails verification checks<br>
BadCardNumber: Card length was 16, but we were expecting 0<br>
</body>

エラーが予想されます (カードの詳細を確認しています) が、それをキャッチできないようです。Acftryそしてcfcatch効果がないので、このエラーを処理して実行を継続する方法について完全に途方に暮れています。

誰でも助けることができますか?

乾杯、

トム

編集 - 追加のエラー情報

このスタックトレースを投稿することも役立つかもしれないと思いました。Coldfusion を介してアクセスすることはできませんが、代わりに、LogObjectおそらく Java コードで上記の一部としてファイルに記録されます。

    com.providername.client.errors.VerifyErrorReport: Transaction fails verification
    com.providername.client.errors.BadRequest: Request fails verification checks
        com.providername.client.errors.BadCardNumber: Card length was 16, but we were expecting 0
            at com.providername.util.CardInfo.verifyCardNumber(CardInfo.java:412)
            at com.providername.util.CardInfo.validateCardInfo(CardInfo.java:789)
        at com.providername.util.CardInfo.validateCardInfo(CardInfo.java:838)
        at com.providername.client.Agent.setupTransaction(Agent.java:681)
    at com.providername.client.Agent.setupTransaction(Agent.java:692)
    at com.providername.client.Agent.request(Agent.java:281)
    at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at coldfusion.runtime.java.JavaProxy.invoke(JavaProxy.java:74)
    at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1634)
    at cfprovidername2ecfc526409752$funcSENDXMLOBJECT.runFunction(D:\site\components\providername.cfc:210)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:344)
    at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:290)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:254)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:56)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:207)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:169)
    at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:1807)
    at cftransactions2ecfc114461696$funcTRANSACTION.runFunction(D:\site\components\transactions.cfc:175)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:344)
    at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:290)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:254)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:56)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:207)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:366)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:198)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:157)
    at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1594)
    at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:341)
    at cfauthorise2dprovidername2ecfm1546743078._factor7(D:\site\payment\authorise-providername.cfm:224)
    at cfauthorise2dprovidername2ecfm1546743078._factor27(D:\site\payment\authorise-providername.cfm:164)
    at cfauthorise2dprovidername2ecfm1546743078._factor30(D:\site\payment\authorise-providername.cfm:91)
    at cfauthorise2dprovidername2ecfm1546743078.runPage(D:\site\payment\authorise-providername.cfm:1)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915)
    at cfauthorise2ecfm767248619.runPage(D:\site\payment\authorise.cfm:10)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915)
    at cftemplate2ecfm1091873885._factor4(D:\site\server\template.cfm:247)
    at cftemplate2ecfm1091873885.runPage(D:\site\server\template.cfm:1)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915)
    at cfapplication2ecfm1526755454._factor31(D:\site\application.cfm:673)
    at cfapplication2ecfm1526755454.runPage(D:\site\application.cfm:1)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915)
    at cfApplication2ecfm1608241748.runPage(D:\site\payment\Application.cfm:30)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:33)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:172)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:51)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:69)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:115)
    at coldfusion.CfmServlet.service(CfmServlet.java:107)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:257)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:204)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:318)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:426)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:264)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
4

1 に答える 1

2

私はこれについてパーティーに少し遅れていますが、あなたが得ているのは JRun エラーそのものではありません。エラーが JRE でスローされ、JRun が「サーブレット エラー」として表示しているようです。スタック トレースの次の行に注目してください。

com.providername.client.errors.VerifyErrorReport: Transaction fails verification
com.providername.client.errors.BadRequest: Request fails verification checks
    com.providername.client.errors.BadCardNumber: Card length was 16, but we were expecting 0
        at com.providername.util.CardInfo.verifyCardNumber(CardInfo.java:412)

これは、412 行目の verifyCardNumber() 内の CardInfo クラスによってスローされたエラーのようです。com.providername.client.errors.VerifyErrorReport にハード ストップがあるため、JRun は単に「サーブレット エラー」としてエラーを提供していると思います。

<cfcatch>これが、その例外をキャッチしない理由でもある可能性があります。Java クラスがそのエラーをキャッチし、Java 内でその例外をスローして、醜い JRun 500 エラーを引き起こす可能性があります。

CardInfo で例外が発生する理由を調べるための Java のソースがない場合は、ソースの所有者に連絡して、洞察があるかどうかを確認する必要があります。

これが何らかの形で役立つことを願っています。

于 2010-08-27T18:18:27.637 に答える