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?你打电话给他的绑定端口正确的服务名称? –