2016-05-10 8 views
0

Content-Lengthが1068を超えると、WSO2 API RESTエンドポイントの呼び出しに失敗し、「412 Precondition Failed」という問題が発生しています。要求にスペースを追加するだけです1069)が原因でこの障害が発生します。この問題は、APIが(テスト用のSOAPUIを使用して)十分に速く呼び出された場合、コンテンツの長さが1069未満の場合にも発生する可能性があります。ヘッダーと本文がパケット間で分割され、要求が混乱するという理論があります。私たちはチャンクを止めようとしましたが、それはものに影響しませんでした。バックエンドのRESTサービスが直接呼び出されると、正常に動作します。WSO2 APIマネージャー1.10の問題

答えて

0

SOAPエンドポイントを呼び出す場合は、プロパティメディエータを使用してチャンクをオフにすることができます。しかし、SOAPエンドポイントも非チャンクリクエストを期待していることを確認する必要があります。

<property name=”DISABLE_CHUNKING” value=”true” scope=”axis2″/> 


しかし、あなたは時々動作しない場合があり財産上のRESTエンドポイントを使用している場合。このような状況では、Content-Lengthヘッダーが要求に追加されていることを確認する必要があります。以下の2つのプロパティを使用して、Content-Lengthヘッダーを追加できます。

<property name="FORCE_HTTP_CONTENT_LENGTH" value="true" scope="axis2"></property> 
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"></property> 

 <inSequence> 
     <log level="custom"> 
      <property name="msg" value="Executing IN sequence"></property> 
     </log> 
     <property name="FORCE_HTTP_CONTENT_LENGTH" value="true" scope="axis2"></property> 
     <property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"></property> 
     <send> 
      <endpoint> 
       <address uri="https://www.google.com" format="rest"></address> 
      </endpoint> 
     </send> 
     </inSequence> 
inSequenceサンプルプロキシ
関連する問題