2012-08-07 2 views
0

PHP로 SoapClient를 설정하는 데 문제가 있습니다. 내가 가진 문제는 상대적으로 일반적인 문제인 것으로 보이지만 적절한 해결책을 찾지 못했습니다. 다음 코드를 사용하여 연결합니다 :SOAP WSDL 구문 분석 오류

$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과 어떻게 든 관련되어있는 것처럼 보입니다.

+0

브라우저에서 * what * URL로 이동하면 어떻게됩니까? – Madbreaks

+0

나는 현재 서버에있는 웹 서비스를 호출 할 수 없다고 주장하는 [this] (http://www.digipedia.pl/usenet/thread/15676/652/)에 왔지만, 나는 그렇지 않다. 그 안에 주식을 넣었는지. – Crash

+0

위의 기사가 올바른 것 같습니다. 다른 페이지에서 요청을 시도했지만 서버에서 예상되는 응답을받지 못했지만 더 이상 오류 메시지가 표시되지 않습니다. – Crash

답변

0

귀하의 URI는 유효하지 않습니다. 그 오류는 아주 분명합니다 - 자원을 찾을 수 없습니다. 파일 경로를 지정하고 있지만 "URL"을 방문 할 때 유효한 XML을 얻는다는 질문에 상대적 파일 경로 대신 코드에 같은 URL을 넣으십시오.

편집

당신은 사실 무슨 말을이 시도하는 경우 :

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

: 당신이 그것에 인 동안, 그 라인 전에이 권리를 넣어

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

편집

아래와 같이 WSDL을로드 해보십시오.

$client = new SoapClient('http://localhost/ASP/webservice1.asmx?WSDL'); 
+0

내가 URL에 가봤다고 말하면, 그 PHP 코드가있는 URL로 갔다가 상대 경로를 추가했다는 것을 의미합니다. 상대 경로는 인쇄 될 때 정확합니다. – Crash

+0

왜 상대 경로를 사용하여 웹 서비스를 사용하고 있습니까? 정규화 된 URL을 사용하여 직접 명중하지 않는 이유는 무엇입니까? – raidenace

+0

@Raidenace 왜 내 대답에 질문하나요? 질문의 코멘트 섹션에 질문하십시오. 하지만 가치가있는 URL은 필요하지 않습니다. http://www.php.net/manual/en/soapclient.soapclient.php – Madbreaks