2014-03-24 29 views
2

我在symfony2中有一個簡單的web服務,它可以正常工作。然而,奇怪的是,我添加了一種新方法,即使在WSDL定義中看到該方法時,該方法也無法識別。SoapClient無法識別我在WSDL中看到的函數

請載荷:WSDL definition

方法被稱爲GetHoliday

執行該方法如下控制器:

public function getHolidayAction() { 
    date_default_timezone_set('America/Santiago'); 

    $request = $this->getRequest(); 

    $client = new \SoapClient('http://' . $request->getHttpHost() . $request->getScriptName() . '/feriados?wsdl'); 

    $year = $request->get('year'); 
    $month = $request->get('month'); 
    $day = $request->get('day'); 

    $types = $client->__getFunctions(); 

    var_dump($types); 
    die(); 

    $result = $client->GetHoliday('8cd4c502f69b5606a8bef291deaac1ba83bb7727', 'cl', $year, $month, $day); 
    echo $result; 
    die(); 
} 

調用__getFunctions通話後,GetHoliday方法缺失。

如果你想看到的__getFunctions響應,請加載online site

輸入輸入字段的任何日期。響應將顯示爲紅色。

最奇怪的是,這是在我的開發機器上也有RedHat操作系統(我的主機是HostGator)。

任何幫助將不勝感激,

回答

1

最後,問題是,WSDL是被緩存。

爲了讓第一次測試,我用

$client = new \SoapClient('http://' . $request->getHttpHost() . $request->getScriptName() . '/feriados?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE)); 

實例化SoapClient的。這樣,它的工作。所以爲了擺脫WSDL_CACHE_NONE參數,我刪除了在/ tmp文件夾中以wsdl開頭的所有文件。

問候, 海梅

+0

我有同樣的問題,但WSDL_CACHE_NONE不適合我!plz幫助我 –