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

0

Я использую следующий скрипт php в mule. Когда я запускаю этот файл 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;
?>

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

Трассировка стека прерываний корня:

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? Если да, то где я могу его найти. Пожалуйста помоги!!

Теги:
soap
mule

2 ответа

0

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

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

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);

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню