2

私はColdFusion10の新しいRESTAPIを使用しています:http ://www.adobe.com/devnet/coldfusion/articles/restful-web-services.html

例外がある場合は常に、APIはそれを適切に処理し、次のようなものを自動的に返します。

HTTP/1.1 500 Internal Server Error
Content-Length: 52
Content-Type: application/json
Date: Fri, 22 Feb 2013 01:07:49 GMT

{"Message":"Element FOO is undefined in ARGUMENTS."}

問題は、次のどちらも呼び出されないことです。

  • サイト全体のエラーハンドラ
  • Application.cfcのonError

REST APIがエラーを処理し、例外が発生しないようです。サーバー側のエラーが発生するたびに、(エラーの詳細を記載した)メールを自分に送信するのが好きです。新しいRESTAPIでどのようにできるかについて何か考えはありますか?

4

4 に答える 4

1

これは理想的ではありませんが、エラー時に電子メールを送信してから再スローする各メソッドにtry/catchを追加できます。

于 2013-02-22T18:04:18.433 に答える
1

サイト全体のエラーハンドラーはRESTサービスで機能します。RESTサービスを呼び出すときに、ユーザーは「Accept」ヘッダーを指定できます。ユーザーがacceptヘッダーをxmlまたはjsonとして指定すると、エラーがキャッチされ、エラーコードとメッセージを含む構造体が適切な形式にシリアル化されます。この場合、サイト全体のエラーハンドラは呼び出されません。HTMLコンテンツ全体をJSONまたはXMLで送信するのはよくありません。ただし、要求されたContent-Typeがtext / htmlの場合、サイト全体のハンドラーが呼び出され、HTMLが応答として返されます。

于 2013-06-04T16:39:04.863 に答える
0

Webサービスを利用するために何を使用しているかはわかりませんが、ColdFusionであると仮定すると、cfhttpとそのthrowonerror属性を使用できます。

<cftry>
    <cfhttp
        url="http://localhost:8500/rest/restapp/crudService/1"
        method="get"
        timeout="5"
        throwonerror="yes" />

    <cfcatch type="Any">
        <!--- email yourself the error details --->
    </cfcatch>
</cftry>

そうすれば、cfcatchを使用して返された500エラーをトラップし、自分自身にcfcatchダンプを電子メールで送信できます(または、エラーの詳細を電子メールで送信したい場合)。

于 2013-02-22T16:44:20.687 に答える
0

これは修正されていますが、CF11でのみ使用できます

引用:

これは、最新のColdFusion11リリースで修正されています。

--Hari Krishna Kallae

https://bugbase.adobe.com/index.cfm?event=bug&id=3506757

アップデート

CF10の修正プログラムは、次のアップデートで利用可能になります(2014年8月中旬を対象)

于 2014-06-10T21:05:49.623 に答える