5

Coldfusion10を使用してSOAPWebサービスを構築しています。IIS7.5で実行しています。ColdfusionはAJP1.3コネクタを介してスタンドアロンのJavaTomcatサーバーに接続します。

サーバーが受け入れるSOAPリクエストのサイズに4〜8 KBの制限があるようですが、その制限を超えると、接続がリセットされます。エラーは表示されません。

しかし、私のCFログでは、次のようになります。

The fault returned when invoking the web service operation is:<br> <pre>org.apache.axis2.AxisFault: Connection reset    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)     at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:197)      at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)      at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:402)      at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231)   at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)     at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)      at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)   at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)    at reverserisk_ncm.Reverserisk_ncmStub.dumpHeader(Reverserisk_ncmStub... The specific sequence of files included or processed is: C:\rr1.5\Clarence\webservice\test_ncm.cfm, line: 36

私はいくつかのことを試しましたが、最初にサイズ制限であることを確認し、30秒間スリープを追加しても同じ結果が得られたので、次のことを試しました。

  1. Coldfusionの最大POSTサイズデータセットが高い値に設定されている
  2. IISサーバー構成-system.web/httpRuntime.maxRequestLength->maxIntおよびsecurity.requestFilter.maxAllowedContentLength
  3. Apache Tomcat:conf /server.xml-AJP1.3コネクタmaxPostSize/maxSavePostSize値->2MB
  4. Axis2.xmlをHTTP/1.1からHTTP/1.0に変更して、転送エンコーディングの「チャンク」を強制的に無効にする-これはDDOS攻撃に対するセキュリティ機能である可能性があることを読みました

誰かが同様の問題に遭遇した場合、これもServerFaultの質問である可能性がありますが、CFでSOAPを実行している誰かが、同様の問題を目にしたことを願っています。ありがとうございます。

4

2 に答える 2

0

添付ファイル付きのSOAP(saaj)を試すことができますか?

SOAPエンベロープにデータを添付ファイルとして含めることができる場合は、soapメッセージを次のように分割できます。

1.メタデータ(SOAP Envolope内)

2.SOAP添付ファイルとしてのデータ(コンテンツ)

CFの可能性については知りませんが、SOAP1.2をサポートするツールを使用すればこれを実行できます。

于 2013-01-15T06:44:35.870 に答える
0

ちょっと気になったのですが、あなたは Axis 2 を必要としていますか? Axis 1 を試してみて、何が起こるか見てもらえますか? CF 10 では、管理インターフェイスでその設定を変更できます。

私がお勧めするもう 1 つのことは、CF のログを追跡し、これが発生したときにコンソールにメッセージが報告されているかどうかを確認することです。

テストする他のいくつかのことを次に示します。

1) 接続先の Web サービスを所有していない場合は、WSDL をダウンロードして、独自の CFC に関連付けてみてください。CFC に実装は必要ありません。他のサービスを呼び出していないときに別のエラーが発生するかどうかを確認したいだけです。

2) 問題となっているサイズを絞り込めますか?たとえば、WSDL のサイズを微調整して、動作するのに十分なほど小さくしてから、徐々にサイズを大きく微調整すると、常に問題を引き起こす WSDL のサイズを見つけることができますか?

3) CF が作成する Web サービス プロキシを削除しようとしましたか? それらは {coldfusion10}/cfusion/wwwroot/WEB-INF/cfclasses の下にあると思います。

基本的に、静かな失敗を乗り越えて、より有益なものへの道を見つける必要があると思います。

于 2013-01-14T18:46:19.167 に答える