soap — Использование SoapClient в php в муле

Я использую следующий скрипт php в муле. Когда я запускаю этот php файл индивидуально (через wamp), я могу получить требуемый вывод.

<?php

$client1=new SoapClient('example/v2_soap?wsdl', array('trace' => 1, 'connection_timeout' => 120));
$username = '******';
$password = '******';

//retreive session id from login
$session = $client1->login(
array(
'username' => $username,
'apiKey' => $password,
)
);

$result= $client1->catalogProductInfo(
array(
'sessionId' => $session->result,
'productId' => 1,
)
);

print_r($result);

return $result;
?>

Но я хочу запустить следующий скрипт через мул. Поэтому, когда я запускаю его через мул, я получаю следующую ошибку.

Трассировка корневого исключения:

com.caucho.quercus.QuercusErrorException: eval::5: Fatal Error: 'SoapClient' is an unknown class name.
at com.caucho.quercus.env.Env.error(Env.java:4480)
at com.caucho.quercus.env.Env.error(Env.java:4399)
at com.caucho.quercus.env.Env.createErrorException(Env.java:4130)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

В нем говорится, что SoapClient — неизвестный класс. В чем здесь проблема?

Должен ли я включить некоторые SoapClient здесь? Если так, где я могу найти это. Пожалуйста помоги!!

0

Решение

Я не уверен, поддерживает ли mule расширения php, но это кажется ошибкой. Вы можете попробовать скачать NuSOAP в ваш проект,
который не требует расширения PHP. Хотя синтаксис немного отличается, но не должно быть сложнее адаптировать ваш код.

Для чего это стоит, это простой пример запроса мыла с использованием nusoap (взято здесь http://www.richardkmiller.com/files/msnsearch_nusoap.html):

require_once('nusoap/lib/nusoap.php');

$request = array('Request' => array(
'AppID' => 'MSN_SEARCH_API_KEY',
'Query' => 'Seinfeld',
'CultureInfo' => 'en-US',
'SafeSearch' => 'Strict',
'Flags' => '',
'Location' => '',
'Requests' => array(
'SourceRequest' => array(
'Source' => 'Web',
'Offset' => 0,
'Count' => 50,
'ResultFields' => 'All'))));

$soapClient = new soapclient("http://soap.search.msn.com/webservices.asmx?wsdl", false);
$result = $soapClient->call("Search", $request);
print_r($result);

Я надеюсь, что это помогает.

0

Другие решения

Я понимаю, что, похоже, проблема с запуском мыльного клиента в quercus (а не в Mule).

Однако вместо того, чтобы сосредоточиться на этом, я бы посоветовал взглянуть на клиента CXF и потребителя Web-сервисов. Вы работаете внутри Mule — мощного ESB с открытым исходным кодом, вам не нужно писать php-скрипт для использования сервиса, у вас уже есть все эти функции.

0

По вопросам рекламы [email protected]