0

PHP で SoapClient をセットアップする際に問題が発生しています。私が抱えている問題は比較的一般的なもののようですが、まだ適切な解決策を見つけていません。次のコードを使用して接続しています。

    $varIDs = array();
    $varIDs[0] = '2147483732';


    try{
        $client = new SoapClient("../../../../ASP/webservice1.asmx?WSDL");
    } catch (Exception $e) {
        echo $e . '<br>';
    }

WSDL ファイルを読み込めないという、以下に示す標準エラーが表示されます。

[07-Aug-2012 12:11:17] PHP Warning:  SoapClient::SoapClient() [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: I/O warning : failed to load external entity &quot;../../../../ASP/webservice1.asmx?WSDL&quot; in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\php\utils\getISOxml.php on line 7
[07-Aug-2012 12:11:17] PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from '../../../../ASP/webservice1.asmx?WSDL' in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\php\utils\getISOxml.php on line 7

ここで何が問題なのかわかりません。ブラウザーで URL にアクセスすると、有効な XML が表示されます (これまで WSDL を使用したことがないため、有効であると想定しています)。助言がありますか?

編集: @Madbreaks からの以下の提案に従って、指している URL を変更しようとしました (現在は「http://vm0281sch/ATS/webservice2.asmx?WSDL」と表示されています)。応答に永遠に時間がかかっていたので、最初は機能していると思いましたが、それについてはわかりません.新しいエラーが発生しますが、まだ何も得られません. 以下に示すエラーが表示されます。

[07-Aug-2012 16:16:42] PHP Warning:  SoapClient::SoapClient(http://vm0281sch/ASP/webservice1.asmx?WSDL) [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\php\utils\getISOxml.php on line 6

これに続いて、以前に発生していたエラーが発生します。ここで何が起こったのかはわかりませんが、問題は実際には私が使用している URL に関係しているようです。

4

1 に答える 1

0

URI が無効です。エラーは明らかです。リソースが見つかりません。ファイルパスを指定していますが、「URL」にアクセスすると有効な XML が取得されると質問されています。相対ファイル パスではなく、同じ URL をコードに入れます。

編集

あなたの言うことが本当なら、これを試してください:

$client = new SoapClient(dirname(__FILE__)."/../../../../ASP/webservice1.asmx?WSDL");

あなたがそれをしている間、これをその行の直前に置いてください:

error_log('In dir: '.dirname(__FILE__));

編集

以下に述べたことに基づいて、次のように WSDL をロードしてみてください。

$client = new SoapClient('http://localhost/ASP/webservice1.asmx?WSDL');
于 2012-08-07T20:24:46.793 に答える