Удалось ли кому-нибудь успешно работать с клиентом с использованием пакета услуг Веб-сайт WSO2 / C++? Я перепробовал все, что мог придумать, но каждый раз, когда я пытаюсь запустить очень простой клиент, у меня вылетает сбой. Вот пример кода из одной из их программ-примеров ...
#include <stdio.h>
#include <WSRESTClient.h>
#include <OMElement.h>
#include <iostream>
#include <AxisFault.h>
using namespace std;
using namespace wso2wsf;
int _tmain(int argc, _TCHAR* argv[])
{
WSRESTClient * sc = new WSRESTClient("http://localhost:9090/axis2/services/echo/echoString");
try
{
sc->initializeClient("echo_rest.log", AXIS2_LOG_LEVEL_TRACE);
}
catch (AxisFault & e)
{
cout << endl << "Error: " << e << endl;
return 0;
}
Options * op = sc->getOptions();
op->setHTTPMethod(AXIS2_HTTP_GET);
sc->setOptions(op);
{
OMNamespace * ns = new OMNamespace("http://ws.apache.org/axis2/services/echo", "ns1");
OMElement * payload = new OMElement(NULL,"echoString", ns);
OMElement * child = new OMElement(payload,"text", NULL);
child->setText("Hello World!");
cout << endl << "Request: " << payload << endl;
OMElement * response;
try
{
response = sc->request(payload, "http://ws.apache.org/axis2/c/samples/echo/soap_action");
if (response)
{
cout << endl << "Response: " << response << endl;
}
}
catch (AxisFault & e)
{
cout << endl << "Error: " << e << endl;
}
delete payload;
}
delete sc;
return 0;
}
У меня вылетает каждый раз при построении объекта WRESTClient. Кажется, это проблема где-то в коде WSO2, но я не получаю сообщения об ошибке, указывающего, в чем именно заключается проблема. Следующим моим шагом будет сборка исходного кода для WSO2 и пошаговое выполнение кода, который дает сбой, но я надеюсь, что кто-то уже сталкивался с этой проблемой раньше и немедленно получит обратную связь.
Рассматривали ли вы возможность размещения блока try / catch-all вокруг конструкции объекта WRESTClient? Если вы сбрасываете ядро в этой строке, то велика вероятность, что она генерирует исключение, и если вы его поймаете, вы сможете получить более полезную информацию об ошибке из этого исключения.
Помимо этого, пора вытащить отладчик, как вы предложили.