wsdlの一部のデータ(PHPのSOAPクライアントを使用)にアクセスしようとすると、次のエラーが発生します。Uncaught SoapFault例外:[クライアント]関数がこのサービスの有効なメソッドではありません
Uncaught SoapFault exception: [Client] Function function_nameis not a valid method for this service
ヘルプがありますか?
wsdlの一部のデータ(PHPのSOAPクライアントを使用)にアクセスしようとすると、次のエラーが発生します。Uncaught SoapFault例外:[クライアント]関数がこのサービスの有効なメソッドではありません
Uncaught SoapFault exception: [Client] Function function_nameis not a valid method for this service
ヘルプがありますか?
2つの解決策:
関数の先頭にあるコメントにパラメータ、戻り値の型、およびWebサービスのメソッドを追加するだけです。それが動作します。私はその作業を試みた。
/**
* @param string the symbol of the stock
* @return float the stock price
* @soap
*/
public function getPrice($symbol)
{
//...return stock price for $symbol
}
私はこの問題があり、最終的に私のPHPエラーログをチェックすることにしました。
php.iniのはalways_populate_raw_post_data = -1
を有効にし、サーバーを再起動します。
私のPHPのバージョンは、PHP5.6からPHP7にアップグレードするときに、この例外が発生し、当社の状況で5.6.8
です。 WSDLキャッシュを無効にすることもできました。
ini_set("soap.wsdl_cache_enabled", "0");
も参照してください:http://lornajane.net/posts/2015/soapfault-when-switching-php-versions
は、実際のエラーということですか?もしそうなら、あなたはサービスプロバイダからテンプレートファイルを取得し、 'function_name'というサービス関数を呼び出そうとしました。これは関数の実際の名前ではありません。あなたは 'function_name'をあなたが呼び出す関数の名前で置き換えることになっています。関数名がどこに行くのかを示すプレースホルダです。サービスプロバイダは、おそらくドキュメントを提供します。私はそれを読むことをお勧めします。正しく。 – DaveRandom
こんにちはDaveさんの返信ありがとうございました。元のエラーメッセージではありません。message.iは実際の関数名を 'function_name'に置き換えました –
まあまあ、エラーは、あなたがそのサービスで有効になっていないことを伝えています。 - ドキュメントをチェックし、関数名が有効であることを確認し、有効な場合はサービスプロバイダに連絡してください。 – DaveRandom