26

MagentoのWebサービスへのsoap接続を作成しようとしていますが、soapクライアントクラスのインスタンスを作成しようとするとエラーが発生します。Firefoxでwsdlファイルを問題なく表示でき、phpがapachesログでwsdlを要求するのを見ることができますが、それでも失敗します。Nusoapは接続できます。

$proxy = new SoapClient('someaddress?wsdl');

エラーは

<b>Fatal error</b>:  Uncaught SoapFault exception: [HTTP] Error Fetching http headers in /home/sites/xxx/xxx_main/system/application/views/contentpage_templates/gift_service.php:29
Stack trace:
[internal function]: SoapClient-&gt;__doRequest('&lt;?xml version=&quot;...',    'http://cornishw...', 'urn:Mage_Api_Mo...', 1, 0)
[internal function]: SoapClient-&gt;__call('call', Array)
/home/sites/xxx/xxx_main/system/application/views/contentpage_templates/gift_service.php(29): SoapClient-&gt;call(NULL, 'catalog_categor...', 5, 'giftshop')
/home/sites/xxx/xxx_main/system/application/libraries/MY_Loader.php(586): include('/home/sites/cor...')
/home/sites/xxx/xxx_main/system/application/libraries/MY_Loader.php(228): MY_Loader-&gt;_ci_load(Array, '')
/home/sites/xxx/xxx_main/system/application/modules/contentpage/controllers/contentpage.php(44): MY_Loader-&gt;view('contentpage_tem...', false, true)
[internal function]: Contentpage-&gt;index()
/home/sites/xxx in <b>/home/sites/xxx/xxx_main/system/application/views/contentpage_templates/gift_service.php</b> on line <b>29</b>

ありがとう

4

10 に答える 10

41

設定してみてください:

default_socket_timeout = 120

あなたのphp.iniファイルに。

于 2009-07-20T09:31:41.687 に答える
12

追加してみましたか

'trace'=>1,

SoapClient作成パラメータに移動してから:

var_dump($client->__getLastRequest());
var_dump($client->__getLastResponse());

何が起こっているのかを見るために?

于 2009-05-29T05:55:47.950 に答える
6

サーバー側に問題がある場合、このエラーがクライアントに表示されることがあります。たとえば、SOAP サーバーが解析エラーのある PHP スクリプトである場合、クライアントはこのメッセージで失敗します。

サーバーを制御している場合は、SOAP サーバーをホストするマシンで Apache error_log を追跡します。CentOS では、これは /var/log/httpd/error_log にあるため、コマンドは次のとおりです。

テール -f /var/log/httpd/error_log

ここでクライアントを更新し、エラー メッセージを監視します。サーバー スクリプトの PHP エラーが表示されます。

それが誰かを助けることを願っています。

于 2010-11-19T17:21:34.170 に答える
4

私は同じ問題に直面しました。
CLIとして実行していました。そのため、PHP は常に実行されており、一定の間隔を置いて何度も何度も SOAP 呼び出しを行う必要がありました。
私がした間違いは、これにシングルトンパターンを使用していたことです。シングルトンを使用するとパフォーマンスが向上すると思いましたが、結果は得られました

Error Fetching http headers in ...

呼び出しごとに新しい saop オブジェクトを作成して修正しました。

于 2013-05-30T13:20:07.273 に答える
2

私はあなたのPHP構成についてではありませんが、PHP 5.2.6まで、PHPはSOAPクライアントに問題があります:

バグ #41983 - http ヘッダーの取得エラー

バグ #41983

于 2009-05-28T14:20:04.483 に答える
1

これがMagento関連の問題である場合は、自動インデックスの再作成をオフにする必要があります。これにより、ソケットがタイムアウト(または期限切れ)する可能性があります。スクリプトがタスクを完了したら、オンに戻すことができます。php.iniのデフォルトのソケットタイムアウトを増やすことも良い考えです。

于 2012-12-02T13:08:10.110 に答える
0

私のApacheエラーログで、私は見ました:

[Tue Feb 16 14:55:02 2010] [notice] child pid 9985 exit signal File size limit exceeded (25)

そこで、最大のログ ファイル 2.1GB /var/log/system.log の内容をすべて削除しました。これですべてが機能します。

于 2010-02-16T20:44:13.807 に答える
0

php バージョン 5.2.6 未満に問題があります。php のバージョンをアップグレードする必要があるかもしれません。

于 2010-10-14T18:06:52.767 に答える