機械翻訳について

6 RESTアダプタのトラブルシューティング

「RESTアダプタ」の問題のトラブルシューティングについては、次のトピックを参照してください。

トピック:

XMLスキーマのアップロード時に無効な参照エラーが発生しました

アダプタ・エンドポイント構成ウィザードでXMLスキーマをアップロードし、次のようなエラーが発生すると、RESTアダプタの生成済アーティファクトにネームスペース接頭辞の競合が発生し、スキーマが指定されていることが示されます。

Error: ICS-10064 : An error occurred while preparing mapper object. Invalid reference

解決策: 競合を回避するために、アップロードされたスキーマで使用される接頭辞を変更します。 ns*接頭辞は、アーティファクトの生成中にOracle Integrationによって内部的に使用されるため、使用しないでください。

ORABPEL-15235変換失敗エラー発生

JSONペイロードのフィールドの文字列長が20 MBを超える場合、「RESTアダプタ」トリガー接続は次のエラーで失敗します:

ORABPEL-15235 Translation Failure. Failed to translate JSON to XML. String length (20038094)
exceeds the maximum length (20000000) The incoming data does not conform to the NXSD schema. 
Please correct the problem
回避策として、このフィールド・サイズ制限を回避するために統合を再構築します。 次のような推奨事項があります。
  • Oracle Integrationの外部で処理するために、外部SFTPサーバーにファイルを書き込みます。
  • コンテンツをBase64でエンコードされた文字列として送信するのではなく、エンドポイントを呼び出すときにストリームとして添付を追加します。

失敗した「RESTアダプタ」接続呼出しは30秒ごとに504タイムアウト・エラーで3回再試行されます

外部RESTサービスを起動しようとする「RESTアダプタ」接続は、504ゲートウェイのタイムアウト・エラーを受信すると、約30秒ごとに3回再試行します。 この動作は設計によるもので、変更できません。

「RESTアダプタ」は、次のタイプの再試行をサポートするように設計されています:
  • すべてのケースについて、504エラー(外部サービスから)に対して3回再試行します。
  • (外部サービスからの) 502エラーに対して3回再試行しますが、GET操作の場合のみです。
  • SSLおよびアダプタ・マークの再試行可能な例外に対して3回再試行します(各コール間で500ミリ秒のスリープ)。

RPSTおよびOCIサービス起動セキュリティ・ポリシーの問題のトラブルシューティング

リソース・プリンシパル・セッション・トークン(RPST)およびOCIサービス起動セキュリティ・ポリシーを使用する場合の構成の問題のトラブルシューティングについて学習します。

エラー エラーおよび解決の原因

404 Not Foundエラーが発生し、次のメッセージが表示されます:

[CDATA[{\"code\":\"NamespaceNotFound\",\"message\":\"You do not have authorization to perform this request, 
or the requested resource could not be found.\"}.The HTTP 404, 404 Not Found, and 404 error message is a Hypertext 
Transfer Protocol (HTTP) standard response code, in computer network communications, to indicate that the client 
was able to communicate with a given server, but the server could not find the resource that was requested. Carefully 
re-examine the target endpoint that is being called. ]]>
正しいポリシーを設定せずにOCIサービス起動セキュリティ・ポリシーを使用しました。 この例では、オブジェクト・ストレージ・ネームスペースの取得操作は機能しましたが、ポリシーがコンパートメントへのアクセスまたは変更に設定されていないため、他の操作は失敗しました。

必要な操作を実行するようにポリシーを設定します。 「RPSTおよびOCIサービス起動セキュリティ・ポリシーの使用」を参照してください。

409 Not Foundエラーが発生し、次のメッセージが表示されます:

[CDATA[{"code":"BucketAlreadyExists","message":"Either the bucket 'test-rpst-OICServiceInstance-phx-NoPermission' 
in namespace 'axkbv4jfb37h' already exists or you are not authorized to create it"}.This error usually indicates that the 
request submitted by Oracle Integration Cloud can not be completed because it conflicts with some rule already established 
by the service. This is usually a functional error. If the call to the target service using a cURL request is successful 
then contact oracle support with the details.
コンパートメント内のバケットの読取りのみを許可するポリシーが作成されました:
allow dynamic-group rpst_oic-prod-phx-123_Dynamic_Group to read buckets in compartment oic-dev:pp-phx-123-comp

コンパートメントにバケットを作成しようとすると、必要な操作を実行するようにポリシーが設定されていないため、バケットが失敗します。

バケットへの書込みを可能にするポリシーを作成します。 「RPSTおよびOCIサービス起動セキュリティ・ポリシーの使用」を参照してください。

404 Not Foundエラーが発生し、次のメッセージが表示されます:

<![CDATA[{\"code\":\"NamespaceNotFound\",\"message\":\"You do not have authorization to perform this request, or 
the requested resource could not be found.\"}.The HTTP 404, 404 Not Found, and 404 error message is a Hypertext Transfer 
Protocol (HTTP) standard response code, in computer network communications, to indicate that the client was able to communicate
 with a given server, but the server could not find the resource that was requested. Carefully re-examine the target endpoint 
that is being called. ]]>
オブジェクト・ストレージ・ネームスペースの取得操作は機能しますが、動的グループが次のように指定されているため、他の操作は失敗します:
instance.id = service_instance_ocid
RPSTでは、インスタンスIDではなくリソースIDを指定する必要があります。 動的グループの作成時に、リソースIDを指定し、Oracle IntegrationインスタンスのOAuthアプリケーションのクライアントIDを割り当てます:
resource.id = 'client_ID'

「RPSTおよびOCIサービス起動セキュリティ・ポリシーの使用」を参照してください。

404 Not Foundエラーが発生し、次のメッセージが表示されます:

<![CDATA[{\"code\":\"NamespaceNotFound\",\"message\":\"You do not 
have authorization to perform this request, or the requested resource could
not be found.\"}.The HTTP 404, 404 Not Found, and 404 error message is a 
Hypertext Transfer Protocol (HTTP) standard response code, in computer 
network communications, to indicate that the client was able to communicate 
with a given server, but the server could not find the resource that was 
requested. Carefully re-examine the target endpoint that is being called. ]]>
オブジェクト・ストレージ・ネームスペースの取得操作は機能しますが、動的グループが次のように指定されているため、他の操作は失敗します:
resource.id = service_instance_OCID
動的グループの作成時に、Oracle IntegrationインスタンスのOAuthアプリケーションのクライアントIDをリソースIDに割り当てます:
resource.id = 'client_ID'
「RPSTおよびOCIサービス起動セキュリティ・ポリシーの使用」を参照してください。

メディア・タイプがnullの場合、マルチパート・フォーム-データ・エンドポイントの起動が失敗

添付プロパティを確認 - 添付コンテンツ・タイプは適切な値にマップされます。 リクエスト・マッピングのサンプル・ドキュメントには情報が表示されます。

「コンテンツ・タイプとしてmultipart/form-dataを受け入れる外部REST APIのペイロードを作成するためにマップ」を参照してください。

OCIシグネチャ・バージョン1セキュリティ・ポリシーのための秘密キーのPKCS8からRSA (PKCS1)形式への変換

Oracle Cloud Infrastructureコンソールからダウンロードされた秘密キーはPKCS8形式です。 「RESTアダプタ」で使用可能なOCIシグネチャ・バージョン1セキュリティ・ポリシーでは、RSA形式(PKCS1形式)の秘密キーの読取りのみがサポートされます。

次のエラーが発生した場合は、秘密キーをPKCS8からRSA (PKCS1)形式に変換する必要があります。
CASDK-0005: A connector specific exception was raised by the application.
java.lang.ClassCastException: org.bouncycastle.asn1.pkcs.PrivateKeyInfo
cannot be cast to org.bouncycastle.openssl.PEMKeyPair;
org.bouncycastle.asn1.pkcs.PrivateKeyInfo cannot be cast to
org.bouncycastle.openssl.PEMKeyPair
  1. 次のコマンドを使用して秘密キーを変換します:
    openssl pkey -in private_key_in_pkcs8_format.pem -traditional > new_converted_file.key
    たとえば:
    openssl pkey -in pkcs8.pem -traditional > rsa.key
    PKCS8形式秘密キー・ファイルの例:
    -----BEGIN PRIVATE KEY-----
    contents
    -----END PRIVATE KEY-----
    
    変換後のRSA (PKCS1)形式のファイルの例:
    
    -----BEGIN RSA PRIVATE KEY-----
    contents
    -----END RSA PRIVATE KEY-----

20.4.2より前の接続のHTTPエラー・レスポンスがOpenAPI仕様に準拠していません

「RESTアダプタ」ベースのトリガー接続を含むリリース20.4.2 (2020年11月四半期リリース)より前に作成された統合によって返されたHTTPエラー・レスポンスは、OpenAPI仕様に厳密に準拠していません。

返されるエラー・レスポンスには、特定のキーのプレフィクスとしてo:が付きます。 たとえば:
{
  "type" :
"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1",
  "title" : "Internal Server Error",
  "detail" : "An internal error occurred while processing the request. Please
see the fault details for the nested error details.",
  "o:errorCode" : "400",
  "o:errorDetails" : [ {
    "type" :
"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5",
    "instance" : "<![CDATA[{}.The HTTP 404, 404 Not Found, and 404 error
message
is a Hypertext Transfer Protocol (HTTP) standard response code, in computer
network communications, to indicate that the client was able to communicate
with a given server, but the server could not find the resource that was
requested.
Carefully re-examine the target endpoint that is being called. ]]>",
    "title" : "Not Found",
    "o:errorPath" : "<![CDATA[GET http://api.zippopotam.us/us/9021011
returned a response status of 404 Not Found]]>",
    "o:errorCode" : "404"
  } ]
}

November 2020リリース(20.4.2)では、新たに作成された統合がOpenAPI仕様に準拠するように、HTTPエラー・レスポンス形式が変更されました。 次のメッセージに示すように、以前に特定のキーにプレフィクスとして付けられたo:は削除されています。

ただし、既存のすべての20.4.2より前の統合では、それらの統合が変更されても、前述のエラー・レスポンスが引き続き表示されることに注意してください。

{
  "type" :
"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1",
  "title" : "Internal Server Error",
  "detail" : "An internal error occurred while processing the request. Please
see the fault details for the nested error details.",
  "errorCode" : "404",
  "errorDetails" : [ {
    "type" :
"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5",
    "instance" : "<![CDATA[{}.The HTTP 404, 404 Not Found, and 404 error
message
is a Hypertext Transfer Protocol (HTTP) standard response code, in computer
network communications, to indicate that the client was able to communicate
with a given server, but the server could not find the resource that was
requested.
Carefully re-examine the target endpoint that is being called. ]]>",
    "title" : "Not Found",
    "errorPath" : "<![CDATA[GET http://api.zippopotam.us/us/9021011 returned a
response status of 404 Not Found]]>",
    "errorCode" : "404"
  } ]
}

複数の正常なレスポンスを返すRESTサービス

RESTアダプタは、単一タイプのレスポンスに対してのみ構成できます。 HTTP成功ステータス・コードが異なる場合でも、複数のレスポンスを返すサービスはサポートされていません。 構成済レスポンス・タイプ以外のすべてAPIInvocationErrorが生成されます。 フローが統合で不要な場合、スコープ・アクションおよびフォルト・ハンドラを使用して発生するエラーを捕捉できます。

RESTアダプタを使用したエラー処理

RESTアダプタでは、次の方法を使用して起動(アウトバウンド)およびトリガー(インバウンド)方向のエラーを処理します。

起動(アウトバウンド)方向のエラー処理

起動(アウトバウンド)方向のRESTアダプタでは、エラー・コードで受信したHTTPレスポンスの標準APIInvocationErrorが戻されます。 また、リクエストの準備、エンドポイントのコールまたはレスポンスの処理中に、RESTアダプタ内で処理エラーが発生した場合も、APIInvocationErrorが生成されます。

マッパーのAPIInvocationErrorの形式は、次のとおりです。
error_details.pngの説明は以下のとおりです
図error_details.pngの説明

errorDetailsセクションには実際の原因が含まれます。

APIInvocationErrorは、統合のフォルト・ハンドラで処理できます。

トリガー(インバウンド)方向のエラー処理

トリガー(インバウンド)方向のRESTアダプタは、HTTPクライアントがHTTPリクエストを使用してリクエストできるHTTPエンドポイントを公開し、HTTPレスポンスを返します。

成功した場合、RESTアダプタは成功レスポンスを返します。 RESTアダプタは、状況に応じてコードのエラー・ファミリに属するHTTPステータスを持つエラー・レスポンスを返します。 次の表では、考えられる原因とRESTアダプタレスポンスについて説明します。

条件 HTTPステータス 詳細
無効なクライアント・リクエスト 4xx

クライアント側の障害を引き起こす原因となる状態には、次のようなものがあります。

  • 無効なリソースURL
  • 正しくない問合せパラメータ
  • サポートされていないメソッド・タイプ
  • サポートされていないメディア・タイプです
  • 不正なデータ
ダウンストリーム処理エラー 5xx

統合内で発生する可能性のあるその他すべてのエラーは、次のとおりです。

  • 無効なターゲット
  • HTTPエラー・レスポンス
  • 一般的な処理エラー

また、RESTアダプタは、エラーに関する追加の詳細、およびトラブルシューティングの考えられるステップとともにエラー・レスポンスを返します。 構成されているレスポンス・メディア・タイプに応じて、標準的なエラー・レスポンス形式が返されます。 次に、JSONレスポンス構造のサンプルを示します。

{
  "type" : "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1",
  "title" : "Internal Server Error",
  "detail" : "An internal error occurred while processing the request. Please see the fault details for the nested error details.",
  "o:errorCode" : "500",
  "o:errorDetails" : [ {
    "type" : "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
    "instance" : "{\n   \"error_message\" : \"Invalid request. Missing the 'origin' parameter.\",\n   \"routes\" : [],\n   
    \"status\" : \"INVALID_REQUEST\"\n}\n",
    "title" : "Bad Request",
    "o:errorPath" : "GET http://maps.googleapis.com/maps/api/directions/json?destination=Montreal returned a response status of 
      400 Bad Request",
    "o:errorCode" : "APIInvocationError"
  } ]
}

o:errorDetailsセクションは実際の原因用に予約されています。 o:に組み込まれているプレフィクスは、Oracleの標準に基づいています。

統合固有のすべての詳細をフォルトに追加するには、上の部分が使用されます。 通常、これは必須ではありませんが、HTTPのステータス、タイトルおよび詳細を制御する場合は、これらの値を適切に設定してください。 入力しない場合、RESTアダプタから提供されるデフォルト値が十分です。

ノート:

RESTアダプタは、500 Internal serverエラー・コードとともにダウンストリーム・エラーを戻します。 これらのエラーをオーバーライドし、ターゲット・マッパーで適切な値をAPIInvocationError/errorCodeに割り当ててカスタム・エラー・コードを指定できます。

アウトバウンド・システムで発生したフォルトをトリガー(インバウンド) RESTアダプタにマップする場合、推奨マッピングは次のとおりです:



最上部のセクションはこのマッピングに残され、前に説明したサンプルでRESTアダプタによって適切に割り当てられます。

マップされていないフォルトは、Oracle Integrationによってシステム・フォルトとしてインバウンド「RESTアダプタ」に伝播されます。 適切な詳細は伝達されない場合があります。 このため、フォルト・パイプラインを定義することをお薦めします。

RESTアダプタが起動したRESTサービスが401未認可ステータス・レスポンスを返します

RESTアダプタを使用して起動されたRESTサービスが401 Unauthorizedのレスポンス・ステータスを一貫して返した場合、接続ページで構成されているアプリケーション資格証明が無効になっている可能性があります。

「接続」ページでは、資格証明を検証しません。 テスト接続が成功した場合でも、テスト接続では接続ページで定義されたパラメータしか検証しないため、十分でない可能性があります。

接続ページで定義されたパラメータは、エンドポイント構成の一部として構成されたターゲット・エンドポイントREST APIをコールするために使用されるため、この接続を使用するエンドポイント構成をテストすることを強くお薦めします。

アダプタ・エンドポイント構成ウィザードの10ページの構成の制限

「アダプタ・エンドポイント構成ウィザード」では、エンドポイントのユースケースごとにRESTアダプタの複数リソースに関する次の問題があります。

症状 回避策 理由
リフレッシュの問題が発生するのは、RESTアダプタの複数の動詞およびリソースを、「アダプタ・エンドポイント構成ウィザード」のトリガー接続として構成する場合です。 複数の操作の構成中にウィザードがリフレッシュしない場合は、「戻る」をクリックして前のページに戻り、「次」を押して現在のページにリフレッシュします。 エンドポイントごとのRESTアダプタ複数ソースのユースケースでは、同じページ・セットに対して複数の反復が必要です。 これは現在技術制限です。

JSON変換中のNull値のキーの削除

JSON変換中に、REST Adapterはnull値を持つキーを削除します。

たとえば、次のJSONペイロードがRESTアダプタに送信されるとします:

{
"input" : "input",
"val" :  null,
"response": "response"
} 
Oracle Integrationは、次のJSON出力でアウトバウンド・リクエストを送信します。
{
"input" : "input",
"response": "response"
}

アウトバウンド・サービスでキーを使用できるようにするには、次のペイロードを使用します:

{
"input" : "input",
"val" :  "",
"response": "response"
}

特殊文字を使用した大規模なサンプルJSONファイルの処理

JSONファイルのサンプルは、繰り返し構造がある場合に通常大きくなります。 このような繰返しを削除するには、サンプルではインスタンスのドキュメントではなく構造のみを表す必要があるためです。 ただし、JSONファイルが異常に大きく、トリムできない場合は、次のステップを実行します:

  1. 出現するすべての特殊文字(たとえば、$)を、サンプルJSONファイル内の対応するコードに置き換えます。 「JSONからXMLへの特殊文字変換」を参照してください。
  2. 変更したJSONファイルを使用して構成を完了します。
  3. アダプタ・エンドポイント構成ウィザードで生成されたスキーマを選択します。
実行時に、特殊文字を含むキーを持つJSON文書の受信インスタンスが適切なXML要素名に正規化され、シリアル化されたときにこれらの要素を持つXML文書が、キー名に特殊文字をリストアしたJSON文書に変換されます。

SSLの証明の問題のトラブルシューティング

SSL証明書のエラーについては、次のタスクを実行します。

トピック

  • 「設定」> 「証明書」タブに移動し、サーバー証明書をアップロードします。

  • OAuthクライアント資格証明またはOAuthリソース所有者のパスワード資格証明を使用して接続を構成する際に発生する例外エラーの場合は、次のようにします。

    OAuthドキュメントをよく確認して、カスタム2レッグ・セキュリティ・ポリシーを使用します。

  • OAuth Authorizationを使用して接続を構成する際に発生する例外エラーについては:

    OAuthドキュメントをよく確認して、カスタム3レッグ・セキュリティ・ポリシーを使用します。

基本ルーティング統合でのフォルトおよびレスポンス・パイプラインの定義

「RESTアダプタ」フォールトとレスポンス・パイプラインは、基本ルーティング統合で定義できます。

トリガー(インバウンド)側の「RESTアダプタ」は、HTTPクライアントがHTTPリクエストを使用するためにリクエストできるHTTPエンドポイントを公開し、HTTPレスポンスを返します。

成功すると、「RESTアダプタ」は成功レスポンスを返します。 「RESTアダプタ」は、状況に応じて、エラー・コード・ファミリに属するHTTPステータスのエラー・レスポンスを返します。 この表は、考えられる原因と「RESTアダプタ」レスポンスを示しています。

条件 HTTPステータス 詳細
無効なクライアント・リクエスト 4xx クライアント側の障害を引き起こす原因となる状態には、次のようなものがあります。
  • 無効なリソースURL

  • 正しくない問合せパラメータ

  • サポートされていないメソッド・タイプ

  • サポートされていないメディア・タイプ

  • 不正なデータ

ダウンストリーム処理エラー 5xx 統合内で発生する可能性のあるその他すべてのエラーは、次のとおりです。
  • 無効なターゲット

  • HTTPエラー・レスポンス

  • 一般的な処理エラー

また、「RESTアダプタ」は、エラーに関する追加の詳細およびトラブルシューティングの可能なステップを含むエラー・レスポンスも返します。 構成されているレスポンス・メディア・タイプに応じて、標準的なエラー・レスポンス形式が返されます。 次に、JSONレスポンス構造のサンプルを示します。

{
  "type" : "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1",
  "title" : "Internal Server Error",
  "detail" : "An internal error occurred while processing the request. Please see the fault details for the nested error details.",
  "o:errorCode" : "500",
  "o:errorDetails" : [ {
    "type" : "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
    "instance" : "{\n   \"error_message\" : \"Invalid request. Missing the 'origin' parameter.\",\n   \"routes\" : [],\n   
    \"status\" : \"INVALID_REQUEST\"\n}\n",
    "title" : "Bad Request",
    "o:errorPath" : "GET http://maps.googleapis.com/maps/api/directions/json?destination=Montreal returned a response status of 
      400 Bad Request",
    "o:errorCode" : "APIInvocationError"
  } ]
}

errorDetailsセクションは、実際の原因のために予約されています。 フォルト・パイプラインを構成して、ターゲット・フォルトをこの要素にマップする必要があります。 統合固有のすべての詳細をフォルトに追加するには、上の部分が使用されます。 通常、これは必要ありませんが、HTTPステータス、タイトルおよび詳細を制御する必要がある場合は、これらの値を適切に設定します。 入力されていない場合、十分なデフォルト値がアダプタによって指定されます。

アウトバウンド・システムによって生成された障害をトリガー(インバウンド)「RESTアダプタ」にマップするために推奨されるマッピングは、次のとおりです:


ics_rest_fault_hanlder.pngの説明は以下のとおりです
「図ics_rest_fault_hanlder.pngの説明」

このマッピングでは上部のセクションが省略されるため、前述のサンプルでは、これらはアダプタによって適切に割り当てられます。

マップされていないフォールトは、Oracle Integrationによってシステム・フォルトとしてインバウンド・アダプタに伝播されます。 適切な詳細は伝達されない場合があります。 このため、フォルト・パイプラインを定義することをお薦めします。

ノート:

フォルト・パイプラインは、基本マップ・データ統合でのみ使用できます。

サンプルのJSONファイルにおける空の配列の非サポート

RESTアダプタを構成する場合、含まれているJSONサンプル・ファイル内のJSONプロパティに空の配列が存在する場合、次のエラー・メッセージを受け取ります。 メッセージの最後の部分に注意してください。 JSONプロパティの値が含まれるように、JSONサンプル・ファイルを変更します。


ics_rest_json_empty_ary.pngの説明は以下のとおりです
「図ics_rest_json_empty_ary.pngの説明」

呼出しエンドポイントURIはRESTアダプタのベースURI + リソースURIと一致する必要がある

Adapter Endpoint ConfigurationウィザードでRESTアダプタを設計する際、「Summary」ページの内容を慎重に確認してください。 エンドポイントURIは、呼出しサービスURIと一致する必要があります。 必要な値が表示されない場合は、呼出し接続およびアウトバウンド・サービスを確認してください。 接続のベースURIおよび呼出しサービスのリソースURIは、事実上エンドポイントURIとなる必要があります。

RESTアダプタを使用したJD Edwardsフォーム・サービスの呼出しによってAPIInvocationエラーが発生

RESTアダプタが起動接続として構成されている統合からJD Edwards Form Serviceを起動するときに、icsServer-diagnostic.logファイルで次のエラーを受け取ることができます。

[2016-06-07T02:13:54.346-07:00] [icsServer] [ERROR] [] 
[oracle.osb.transports.jca] [tid: [ACTIVE].ExecuteThread: '14' 
for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] 
[ecid: f23c428c-9247-459c-bb9f-22cbadbeda35-0003651d,0] [APP: Service Bus JCA 
Transport Provider] [oracle.soa.tracking.FlowId: 59] [FlowId: 
0000LKe8vtD7MAW5Hzw0yf1NGeIK00001c] Error sending bytes to socket: 
<genericRestFault><errorCode>500</errorCode><errorPath><![CDATA[POST 
http://den60208jems.my_domain.com:9516/jderest/formservice returned a 
response status of 500 Internal Server Error]]></errorPath><instance><![CDATA[{[[   
"message" : "Can not deserialize instance of java.util.ArrayList out of 
START_OBJECT token\n at [Source: java.io.StringReader@68f2c85d; line: 1, column: 
218] (through reference chain: 
com.oracle.e1.jdemf.FormRequest[\"formInputs\"])",   "exception" : "com.fasterxml.jackson.databind.JsonMappingException",   
"timeStamp" : "2016-06-07:03.13.54" }]]></instance></genericRestFault> 
]]
このエラーは、RESTアダプタに配列要素が1つしかないために発生します。 RESTアダプタに配列を含むJSON文書には、アダプタが有効なXMLスキーマを生成するために少なくとも2つの配列要素が必要です。 たとえば:
"formInputs": [ "input1" ]
サンプルJSONに別のセルが追加されていない限り、配列として扱うことはできません:

"formInputs": [ "input1", "input2" ]

RESTアダプタ・データが「Next」をクリックしたときにのみ保存される

RESTアダプタをAdapter Endpoint Configuration Wizardで構成するときは、変更を保存してウィザードの次のページに移動するために「Next」をクリックする必要があります。 たとえば、Requestページで詳細を構成し、Basic Infoページの左ペインのタブをクリックしてから「Next」をクリックしてRequestページに戻ると、以前の構成はどれも保存されず、ページは空になります。

XMLのJSON文書への変換

XMLをJSONドキュメントに変換できます。 Oracle Integrationは、number型のXML要素をnumber型のXMLスキーマに解決します。この型は、XMLをnumber型のJSONドキュメントに変換します。

たとえば:
  • XML:

    <Phone>23249480</Phone>
  • 生成されたXSD:

    <element name="phone" type="integer"/>
  • JSON:

    "Phone": 23249480

この問題を回避するには、サンプルXMLの電話番号に文字列値を使用します。 生成されたXMLスキーマには、文字列型があります。 実行時に、XMLからJSONへの変換により、目的のJSONが生成されます。 たとえば:

  • XML:

    <Phone>a23249480</Phone> <!-- modified -->
  • 生成されたXSD:

    <element name="phone" type="string"/>

実行時は、次に従います。

  • XML

    <Phone>23249480</Phone>
  • JSON

    "Phone": "23249480"

JSONサンプルでサポートされている特殊文字

次の特殊文字はJSONサンプルでサポートされています。

  • " " (空白)

  • /

  • \\

  • ;

  • (

  • )

  • &

  • ,

  • #

  • ?

  • <

  • >

content-typeは非同期フローにはありません

非同期フローのcontent-typeがありません。

次の統合を作成するとします:
  1. 別のOracle Integration RESTエンドポイントとのRESTアダプタ接続を構成します。

  2. トリガーRESTアダプタとRESTアダプタの起動を非同期フローで構成します。

  3. 統合をアクティブ化して起動します。

    content-typeがありません。

    content-length0の場合、content-typeは理想的には必要ありませんが、一部のレイヤーによってcontent-type text/plainがデフォルトのcontent-typeとして追加されます。 どちらも正解であり、許されています。

8251文字を超えるREST URLが失敗

RESTアダプタとの統合でREST URLで動作する文字の上限は8251です。 この制限を超えると、414 Request-URI Too Largeエラーが発生します。

RESTアダプタを介してJSONの特定のキーに""ではなく"null"値を送信

RESTアダプタを介してJSONの特定のキーで""のかわりに"null"値を送信する場合、その特定のキーのマッパーを介して、"xsi:nil=true"をマップする必要があります。