0

すべてのSOAP呼び出しがPHPCOREで正常に機能しています(WAMPで実行した場合)。しかし、同じコードをZend Serverに追加しようとすると、何らかの理由で「サーバーで内部エラーが発生しました」と表示されます。何が起こっているのかわからない!を使用した呼び出しSoapClient()はまったく機能していません...私はローカルWSDLとAlchemyによって提供されるローカルsoapサービスを使用しています。とにかく、私も同じことを試しましたZend_Soap_Clientが、それでもうまくいきません!! 作成されたZendSoapClientのダンプは次のとおりです。

object(Zend_Soap_Client)#37 (29) { ["_encoding":protected]=> string(5) "UTF-8" ["_classmap":protected]=> NULL ["_faultExceptions":protected]=> array(0) { } ["_soapVersion":protected]=> int(2) ["_uri":protected]=> NULL ["_location":protected]=> NULL ["_style":protected]=> NULL ["_use":protected]=> NULL ["_login":protected]=> NULL ["_password":protected]=> NULL ["_proxy_host":protected]=> NULL ["_proxy_port":protected]=> NULL ["_proxy_login":protected]=> NULL ["_proxy_password":protected]=> NULL ["_local_cert":protected]=> NULL ["_passphrase":protected]=> NULL ["_compression":protected]=> NULL ["_connection_timeout":protected]=> NULL ["_stream_context":protected]=> NULL ["_features":protected]=> NULL ["_cache_wsdl":protected]=> NULL ["_user_agent":protected]=> NULL ["_wsdl":protected]=> string(77) "C:\Program Files (x86)\Zend\Apache2\htdocs\C3Nexus\application\WSAlchemy.wsdl" ["_soapClient":protected]=> NULL ["_lastMethod":protected]=> string(0) "" ["_soapInputHeaders":protected]=> array(0) { } ["_permanentSoapInputHeaders":protected]=> array(0) { } ["_soapOutputHeaders":protected]=> array(0) { } ["location"]=> string(29) "http://localhost:3434/Alchemy" 

getFunctions()クライアントのような呼び出しでさえ、私にエラーを与えています。私は何が間違っているのですか?

ZendEnabler.logでこれらのエラーが見つかりました

[3/15/2013 2:21:55 PM] Error: Read data error - unable to get read result. Code 109.
[3/15/2013 2:21:55 PM] Error: Request for C:/Program Files (x86)/Zend/Apache2/htdocs/SOME/public/index.php: Unable to get the response from PHP process
[3/15/2013 2:21:55 PM] Error: PHP process 9872 from the "application/x-httpd-php" pool has exited with status 255.

URLリクエスト:http://localhost:8089/SOME/public/index.php/NewPatient/load-gsdd-data

したがって、

コントローラー: NewPatient アクション:loadGssdData

私はその行動で石鹸の呼び出しを書いています。

これは機能します:

$hey = new Zend_Soap_Client(APPLICATION_PATH . '\WSAlchemy.wsdl');
$hey->location ='http://localhost:3434/Alchemy';
echo var_dump($hey);

しかし、私が電話すると失敗します$hey->getFunctions()

これはまったく機能しません、

$hey = new SoapClient(APPLICATION_PATH . '\WSAlchemy.wsdl');
$hey->location ='http://localhost:3434/Alchemy';
echo var_dump($hey);

またはこれさえ!

 $hey = new SoapClient("http://localhost:8089/SOME/public/WSAlchemy.wsdl");
 echo var_dump($hey);

注:wsdlファイルには次の場所からアクセスできます。http://localhost:8089/SOME/public/WSAlchemy.wsdl

SoapClientPHPのコアであるZendServerで使用できないのはなぜだろうか!! :(

試してみると、ZendServerでSoapClientを無効にしました。

[15-Mar-2013 14:46:23] PHP Fatal error:  Class 'SoapClient' not found in C:\Program Files (x86)\Zend\Apache2\htdocs\SOME\application\controllers\GSDD.php on line 2

だから、私は再び有効にしました、それはそこにエラーがないと言います、それでも私はエラーを受け取ります!これは、拡張機能を有効にした後のサーバーアクセスログです。

127.0.0.1 - - [15/Mar/2013:14:54:06 -0400] "POST /ZendServer/index.php/Log-Tail/Index HTTP/1.1" 200 9205
127.0.0.1 - - [15/Mar/2013:14:54:07 -0400] "POST /ZendServer/index.php?controller=systray&action=exec&do=ping HTTP/1.1" 200 643
127.0.0.1 - - [15/Mar/2013:14:54:35 -0400] "GET /SOME/public/index.php/NewPatient/load-gsdd-data HTTP/1.1" 500 499

だから私がロードすると私はこれを手に入れます:

エラー

そのファイルを開いた後、そこにサーバーエラーがあります。

他のコントローラーとアクションは正常に機能しています!このアクションに問題があります。

どうもありがとうございました:)

4

2 に答える 2

0

よし、やっと直った!

その過程で、物事がどのように機能するかを学びましたが、笑それはばかげた理由です!

Zend was unable to read the Schema File それだ!!!

小さな問題、ふぅ!

この質問があなたを悩ませたらごめんなさい;)

しかし、ええ、WSDL とスキーマ ファイルは連携する必要があります。どうしてこれを逃したの!

この質問を見てくれてありがとう!

于 2013-03-15T21:26:38.167 に答える
0

うーん、既視感があります。ほぼ間違いなく奇数のボールポート番号... openCM? WSDL はそれに従っていますか? SoapClient オプションを試してみ'proxy_host'てください。'proxy_port'

wsdl がサービス ポート バインディングを https およびポート 80 として定義している場合の PHP SOAP 要求の失敗の回避策は?

于 2013-03-15T19:07:46.367 に答える