圖1在action裡面引入這幾個檔案,圖2是檔案的目錄結構,之前用原生的調用執行都沒有問題
,引入到tp方法都找不到了。後面用import也不可以,求幫忙
回複討論(解決方案)
第15行,'dirname(__FILE__)/protocl'
你覺得__FILE__在字串裡能被解析嗎?拆分成dirname(__FILE__) . '/protocl'
匯入檔案路徑失敗,檢查下匯入的檔案
你 import 的參數是錯誤的,檔案的放置也不符合 import 的約定
你完全可以繼續使用 require,雖然不符合 TP 的規範
由於你沒有提及執行個體化對象時出現錯誤,因此可假定執行個體化是成功的
於是可推定執行個體化語句包含在被內嵌檔案中
發生 Call to a member function .... 錯誤的原因是:執行個體化的對象是全域的,在 tp 的方法中不能直接使用(這是基本的變數範圍問題)
第15行,'dirname(__FILE__)/protocl'
你覺得__FILE__在字串裡能被解析嗎?拆分成dirname(__FILE__) . '/protocl'
嗯,之前沒看到這個問題,改了也是不行
你 import 的參數是錯誤的,檔案的放置也不符合 import 的約定
你完全可以繼續使用 require,雖然不符合 TP 的規範
由於你沒有提及執行個體化對象時出現錯誤,因此可假定執行個體化是成功的
於是可推定執行個體化語句包含在被內嵌檔案中
發生 Call to a member function .... 錯誤的原因是:執行個體化的對象是全域的,在 tp 的方法中不能直接使用(這是基本的變數範圍問題)
include 'Ice.php';include 'ZXINSserver.php';include 'protocl/ZXINUserInfoServant.php';$iceGridDefaultLocator='ZXIceGrid/Locator:default -h 192.168.1.61 -p 1201 -t 1000:default -h 192.168.1.160 -p 1201 -t 5000:default -h 192.168.1.61 -p 1102 -t 5000';$initData = new Ice_InitializationData;$initData->properties = Ice_getProperties();$initData->properties->setProperty("Ice.Default.Locator", $iceGridDefaultLocator);$communicator = Ice_initialize($initData);try{ //$p = $communicator->stringToProxy("ZXINStatusServant:tcp -h 192.168.1.60 -p 1111 -t 5000"); $p = $communicator->stringToProxy("ZXINUserInfoServant"); $user = ZXIN_ZXINUserInfoServantPrxHelper::checkedCast($p);
用了ice中介軟體,之前用原生的沒問題,現在顯示500server
錯誤資訊說你用一個Null 物件調用了stringToProxy,說明你沒有執行個體化某個對象,看看錯誤在哪個檔案的哪一行出了錯。
用include現在提示:Class 'Ice_InitializationData' not found,$initData = new Ice_InitializationData;這一句
Ice_InitializationData這個是ice.php裡面的
class Ice_InitializationData{ public function __construct($properties=null, $logger=null) { $this->properties = $properties; $this->logger = $logger; } public $properties; public $logger;}
Class 'Ice_InitializationData' not found沒有找到該類,是不是include的路徑有問題,類的檔案名稱正確嗎?
Class 'Ice_InitializationData' not found沒有找到該類,是不是include的路徑有問題,類的檔案名稱正確嗎?
確定引入正確,路徑檔案 檔案名稱都對的。目錄結構在1樓
你把你上面的路徑改為絕對路徑
vendor('Ice');
vendor('ZXIN.ZXINSserver');
vendor('ZXIN.ZXINUserInfoServant');
我現在把這些依賴檔案全部放到了Extend\Vendor裡面,現在頁面顯示500錯誤。