0
我在PHP中編寫SOAP WebService,並遇到問題。SOAP WebService PHP無法訪問擴展功能
此服務在Linux服務器上運行。我有一個連接到Oracle數據庫的功能,另一個連接到本地Memcached服務器。
所以,當我把我的Oracle連接的功能,SOAP回報:
未捕獲的SOAPFault例外:SOAP-ENV:服務器]調用未定義的函數oci_connect()
但是,如果我創建一個簡單的PHP文件具有相同的Oracle功能它工作正常(沒有SOAP)
我創建了一個簡單的服務器/客戶端php文件juste進行測試,我遇到同樣的問題,這裏是我的代碼:
服務器:
<?php
class Serveur{
function helloWorld()
{
return "Hello World";
}
function connexionOracle()
{
$conn = oci_connect('XXXXX', 'XXXX', 'XXXXX');
if($conn == false)
{
return "Error";
}
else
{
return "OK";
}
}
}
$serversoap = new SoapServer(null, array('uri' => "http://localhost/test/"));
$serversoap->setClass("Serveur");
$serversoap->handle();
?>
客戶:
<?php
error_reporting(E_ALL | E_STRICT);
$client = new SoapClient(null, array('location' => "http://localhost/test/serveur.php",'uri'=> "http://localhost/test/"));
print_r($client->helloWorld());
echo "</br>";
print_r($client->connexionOracle());
?>
此代碼返回:
調用未定義的函數oci_connect()
但是,如果我用一個簡單像這樣的文件,一切工作:
$conn = connexionOracle2();
var_dump($conn);
function connexionOracle2()
{
$db = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = XXXXX)(Port = XXXX))) (CONNECT_DATA = (SID = XXXXXX)))";
return oci_connect('cartetest', 'evol', $db) or Die('Connexion Oracle impossible');
}
我沒有遇到這個問題我的本地Windows機器上
什麼是你正在使用的服務器? –
我正在使用Apache和PHP 5.4 – ctbs1
您是否能夠爲您的服務生成WSDL?你打電話給他的綁定端口正確的服務名稱? –