基本的なPHP/SOAP設定に問題がありますPHP SOAPエラーを返す関数呼び出し
私はPHPでSOAPクライアントを作成して、既存のSOAPサーバーと通信しています。また、WS-Securityも使用します。
私は正常に(認証済み)接続し、次のコードを使用して利用可能な機能の配列を返します__getFunctions
呼び出し、作ることができました:
<?php
$wsdlPath = "https://xxx.xxx.xxx.xxx/services/Service?wsdl";
$ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
$token = new stdClass;
$token->Username = new SOAPVar('xUSERx', XSD_STRING, null, null, null, $ns);
$token->Password = new SOAPVar('xPASSx', XSD_STRING, null, null, null, $ns);
$wsec = new stdClass;
$wsec->UsernameToken = new SoapVar($token, SOAP_ENC_OBJECT, null, null, null, $ns);
$headers = new SOAPHeader($ns, 'Security', $wsec, true);
if (!$client)
{
$client = new SoapClient($wsdlPath);
echo "Conn:YES";
}
else
{
echo "Conn:NO";
}
$client->__setSOAPHeaders($headers);
try
{
print_r($client->__getFunctions());
}
catch (SoapFault $exception)
{
print($exception);
}
?>
次の出力(汚いが得られますが、あなたが得ますアイデア):
Conn:YES
Array (
[0] => editChannelResponse editChannel(editChannel $parameters)
[1] => getDownloadTokenResponse getDownloadToken(getDownloadToken $parameters)
[2] => startCallResponse startCall(startCall $parameters)
[3] => getCallsResponse getCalls(getCalls $parameters)
[4] => endCalendarCallResponse endCalendarCall(endCalendarCall $parameters)
[5] => createChannelResponse createChannel(createChannel $parameters)
[6] => getArchivesByCallIdsResponse getArchivesByCallIds(getArchivesByCallIds $parameters)
[7] => getChannelsResponse getChannels(getChannels $parameters)
[8] => createVRRResponse createVRR(createVRR $parameters)
[9] => getTemplateResponse getTemplate(getTemplate $parameters)
[10] => getTemplatesResponse getTemplates(getTemplates $parameters)
[11] => getCallsByStatusResponse getCallsByStatus(getCallsByStatus $parameters)
[12] => getCallResponse getCall(getCall $parameters)
[13] => startCalendarCallResponse startCalendarCall(startCalendarCall $parameters)
[14] => deleteChannelResponse deleteChannel(deleteChannel $parameters)
[15] => editVRRResponse editVRR(editVRR $parameters)
[16] => deleteVRRResponse deleteVRR(deleteVRR $parameters)
[17] => getLiveStreamingsResponse getLiveStreamings(getLiveStreamings $parameters)
[18] => getHashedPasswordResponse getHashedPassword(getHashedPassword $parameters)
[19] => getVersionResponse getVersion(getVersion $parameters)
[20] => endCallResponse endCall(endCall $parameters)
[21] => getVRRsResponse getVRRs(getVRRs $parameters)
[22] => getNumberOfArchivesResponse getNumberOfArchives(getNumberOfArchives $parameters)
[23] => getArchivesResponse getArchives(getArchives $parameters)
[24] => getVRRResponse getVRR(getVRR $parameters)
)
しかし、私は
print_r($client->__getFunctions());
0を交換することにより、(GETVERSION)直接記載されている機能の一つを呼び出そう私は、エラーメッセージ内の任意の有用な情報が表示されない、と私は呼んでいる機能がリストされている利用可能なオプションの一つです
print_r($client->getVersion());
私は次のエラー
Conn:YES
SoapFault exception: [soap:Server]
Fault occurred while processing. in /var/data/www/xxx/beta/soap.php:29
Stack trace: #0 [internal function]: SoapClient->__call('getVersion', Array) #1
/var/data/www/xxx/beta/soap.php(29): SoapClient->getVersion() #2 {main}
を取得して
私は構文が正しいと信じています。
soap.phpの29行目はどうですか? –
29行目はprint_r($ client-> getVersion())に変更を加えたキーラインです。 –
スタックトレースにこれ以上のものはありませんか? –