問題タブ [zend-soap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - SoapFault 例外: [VersionMismatch] PHP Zend
Zend Soap を使用して PHP Web サービスを実装およびテストしているときに、このエラーが発生しました。
2 つの異なる Web サーバーで 2 つの異なるプロトコル (http と https) で同じコードをテストしています。http サイトは正常に動作しますが、https で「SoapFault 例外: [VersionMismatch]...」エラーが発生します。
2 つの Web サーバーの仕様はほぼ同じです。
これで私を助けることができる人はいますか?
php - nuSoap または Zend 石鹸?
nusoap と ZendSoap の違いを知りたいのですが、どちらが優れていますか? それぞれのメリットとデメリットは?両方のテクノロジーを使用したことのある人なら誰でも、この比較を行うことができますか?
ありがとうございました
php - zf 1.9.6 zend_soap:関数( "doString")はこのサービスの有効なメソッドではありません
この質問の複製
zendフレームワーク1.9.6とphp5.3.1を使用してZend_Soapを操作しようとしています。
soap.php(wsdlジェネレーター)
Soaping.php(Webサービスクラス)
client.php-クライアント
client.phpファイルを実行すると、次のエラーが発生します。
Fatal error: Uncaught SoapFault exception: [Sender] Function ("do_math") is not a valid method for this service in /usr/local/ZendFramework-1.9.6/library/Zend/Soap/Client.php:1090 Stack trace: #0 /usr/local/ZendFramework-1.9.6/library/Zend/Soap/Client.php(1090): SoapClient->__soapCall('do_math', Array, NULL, NULL, Array) #1 [internal function]: Zend_Soap_Client->__call('do_math', Array) #2 /home/ufk/Projects/xpogames-development/xpo/soap/client.php(6): Zend_Soap_Client->do_math(1, 1) #3 {main} thrown in /usr/local/ZendFramework-1.9.6/library/Zend/Soap/Client.php on line 1090
リンクhttp://server/soap/soap.php?wsdlをたどって作成されたxml
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xpogames/soap/soap.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Soaping" targetNamespace="http://xpogames/soap/soap.php"><types><xsd:schema targetNamespace="http://xpogames/soap/soap.php"/></types><portType name="SoapingPort"><operation name="doString"><documentation>do string</documentation><input message="tns:doStringIn"/><output message="tns:doStringOut"/></operation></portType><binding name="SoapingBinding" type="tns:SoapingPort"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="doString"><soap:operation soapAction="http://xpogames/soap/soap.php#doString"/><input><soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xpogames/soap/soap.php"/></input><output><soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xpogames/soap/soap.php"/></output></operation></binding><service name="SoapingService"><port name="SoapingPort" binding="tns:SoapingBinding"><soap:address location="http://xpogames/soap/soap.php"/></port></service><message name="doStringIn"><part name="str" type="xsd:string"/></message><message name="doStringOut"><part name="return" type="xsd:string"/></message></definitions>
関数がxmlに存在するのがわかりますが、なぜ使用できないのですか?
アップデート
次の関数をクラスに追加した場合: /***
メソッドの追加
** @param Int
$ param1
*
@param Int $ param2
* @return Int
* /
public function math_add($ param1、$ param2){
return $ param1 + $ param2;
この関数
は認識されます。しかし、それをadd_math2()に変更しても、関数は再び認識されません。
php - Zend_Soap の名前空間を削除するにはどうすればよいですか?
MyMemory の翻訳 Web サービスを使用しようとしています: http://mymemory.translated.net/doc/spec.php
残念ながら、Zend_Soap_Client はサービスによって認識されない XML 要求オブジェクトを生成します。タグ内の ns1-Attribute (名前空間) が原因だと思います。それで、誰もそれらを削除する方法を知っていますか?
それは基本的に私がすることです:
次に、関数を呼び出します。
結果の XML は次のようになります。
実際には次のようになります。
ご協力いただきありがとうございます!
php - Zend SOAP クラスと自動 WSDL の操作
非常に奇妙な何か。WSDL ファイルは正常に生成されます。これがソースの単純なクラスです
WSDL、サーバー、クライアントのコード
自動生成された WSDL には SoapServer に関するいくつかの問題があります
Z:\home\localhost\www\Zend\Soap\Server.php:694 スタック トレース: #0 Z:\home\localhost\www\Zend\Soap\Server. php(817): Zend_Soap_Server->_setRequest('') #1 Z:\home\localhost\www\test.php(54): Zend_Soap_Server->handle() #2 {main} が Z:\home\localhost でスローされる\www\Zend\Soap\Server.php 行 694
理由がわかりません。WSDL にはスペースや \n などの余分な記号はなく、すべてのヘッダーが指定されています。
PHP 5.2.12 ZF 1.10.0
php - PHP - .NET SOAP サーバーへの Zend SOAP リクエスト
ここで少しお役に立ちたいと思います。
Zend を使用して PHP から .NET SOAP サーバーにリクエストを送信しようとしています。
WSDL ファイルがありますが、ヘッダー情報が含まれていません。カスタムヘッダーを追加しようとしましたが、これは機能していないようで、最悪の場合、WSDL ファイル自体が「正しく」ないように見えます.....
リンクは次のとおりです。 http://www.speedex.gr/getvoutrans/getvoutrans.asmx ?WSDL を追加すると、同じリンクで WSDL を見つけることができます。
私のリクエストは: GetVouTrans
事前にサンクス!
php - PHP の SoapServer->handle() メソッドでエラーを処理できない
PHP 5.3 を使用して WSDL ベースの SOAP Web サービスを作成しました。私は Zend Framework を使用してサービスを処理しており、ZF は PHP の組み込み SoapServer クラスの上に配置されています。
SoapUI でテストしたところ、無効な型のパラメーターを渡す (たとえば、整数が WSDL で定義されている場合に文字列を渡す) と、空の応答が返されることがわかりました。コードを調べてみると、ZF が SoapServer->handle() を呼び出すと、次の致命的なエラーで実行が停止することがわかりました。
エラーは理にかなっていますが、私の人生では、それを適切に処理できるようにキャプチャする方法がわかりません。私の理解では、 handle() は例外をスローする必要がありますが、代わりに単に死んでいます。
しかし、ここからが実に怪しい……。
コードを変更せずに SoapUI で複数のテストを実行すると、異なる結果が生成されます。ほとんどの場合、空の応答が返されますが、ときどき SoapFault が返されます (予想どおりです!)。ただし、一貫性がなく、どちらの場合も何が原因かわかりません。私が知る限り、SoapUI のキャッシング機能と WSDL キャッシングをオフにしています。SoapUI によるものか PHP によるものかはわかりません。私が言ったように、奇妙です。
関連して、私はこの古い PHP バグを見つけました:
それは私自身の問題のようにひどく聞こえます。ただし、これが私の問題であると完全に確信しているわけではありません。これは主に、これらすべてをカバーする PHP ドキュメントと ZF のドキュメントがひどく不完全であるためです。したがって、私は単にひどく間違ったことをしていて、それを知らないだけかもしれません. それを踏まえて、エラーをトラップして処理する適切な方法を示す単純なシェルを見たいと思っています。しかし、私はそこにいる人々が提供できるかもしれないあらゆる助けを借ります.
php - SOAP をサポートしていない Web ホスティングで SOAP を有効にする方法
私のphp5 Webアプリケーションでは、ユーザーデータからdoc/pdfファイルを構築するためにzend mailMergeを使用しています。残念ながら、コードを書くと、ブラウザからエラーがスロー されます。 ホスティング プロバイダーに連絡し、インストール ソープについて尋ねました。彼は、私のホスティングは SOAP をサポートしていないと言いました。また、「nusoap」ライブラリを見つけました。そこに書かれているように、このライブラリは、サーバーが SOAP をサポートしていない場合に役立ちます。しかし、私の Web アプリケーションでこのライブラリを有効にしても、何も変わりません。
可能であれば、SOAP をサポートしていない Web ホスティングで SOAP を有効にする方法を教えてください。
前もって感謝します。
arrays - Zend_Soap : ドキュメント ブロックで戻り値の型構造体を定義する方法は?
Zend_Soap を使用してセットアップされた Web サービスと、その Web サービスのいくつかのパブリック メソッドがあります。事実は、複雑な型を返したいということです。
たとえば、テーブルの行セットのような 2 次元配列を返したい場合、doc ブロックをどのように指定すればよいですか? これは私のケースの1つです。各要素が int と 2 つの文字列を持つ配列を返したいとします。お気に入り:
どうすればこれを達成できますか? 次に、3 番目のフィールドを int と文字列の別の配列に置き換えるなど、さらに複雑にするにはどうすればよいでしょうか。
ティア