Inbound scripted REST リクエストが HTTP-500 および IllegalArgumentException: Cannot decode で失敗するIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Web サービス クライアントが Scripted REST メソッドを使用して受信 REST 呼び出しを行います。クライアントは HTTP-500 応答コードを受け取り、インスタンス ノード ログに次のエラーが表示されます。 WARNING *** WARNING *** Evaluator: java.lang.IllegalArgumentException: Cannot decode: java.io.StringReader@5265c1 このエラーは、クライアントによって送信された JSON リクエスト本文が有効な JSON ではないために発生します。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } すべてのリリースに適用されます。 Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ステップ 1: 受信 REST デバッグ ログを有効化する 原因を確認するには、次のシステムプロパティを設定して受信 REST デバッグ ログを有効化します。System Properties に移動し、次の値でプロパティを作成または更新します。 Name: glide.rest.debugType: true|falseValue: true ステップ 2: 呼び出しを再現し、ノード ログを確認する システムプロパティを設定した状態で、失敗する REST 呼び出しを再度実行します。受信リクエスト本文についてノード ログを確認します。ログ エントリは次のようになります。 DEBUG: #164573 [REST API] RequestDeserializer : Incoming Request Body: "[{"number":"INC000000","workflowID":"CHG000000","Status":"Completed","phase":"Issues with test","modified_date":"14/09/2020 15:25:46"}]" ステップ 3: リクエスト本文を検証する リクエスト本文を JSON バリデーターに貼り付けます。たとえば、JSON validator (JSONLint) を使用します。上記の例は、本文がエスケープ文字および余分な引用符で囲まれているため、有効な JSON ではなく、検証に失敗します。 ステップ 4: 有効な JSON リクエスト本文を送信する 有効な JSON リクエスト本文を送信するように Web サービス クライアントを更新します。クライアントが有効な JSON を送信すると、HTTP-500 エラーおよびノード ログ内の IllegalArgumentException: Cannot decode メッセージは発生しなくなります。 上記の例では、次のものが有効な JSON リクエスト本文です。 {"number":"INC000000","workflowID":"CHG000000","Status":"Completed","phase":"Issues with test","modified_date":"14/09/2020 15:25:46"} 修正後の本文を JSON バリデーターで検証します。たとえば、JSON validator (JSONLint) を使用します。