ejemplo - Crash writing cliente de servicio web simple WSO2/C++
web service java eclipse tutorial (1)
¿Se ha podido ejecutar con éxito con un cliente utilizando el paquete de servicios web WSO2 / C ++ ? Intenté casi todo lo que puedo pensar, pero cada vez que trato de ejecutar un cliente muy simple me da un accidente. Aquí hay algunos ejemplos de código de uno de sus programas de ejemplo ...
#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;
}
Obtengo un bloqueo cada vez en el punto de construcción del objeto WRESTClient. Parece ser un problema en algún lugar del código WSO2, pero no aparece ningún mensaje de error que indique cuál es el problema exacto. Mi siguiente paso será construir contra la fuente de WSO2 y seguir el código que está fallando, pero espero que alguien haya tenido este problema antes y tenga algún comentario inmediato.
¿Has considerado poner un bloque try / catch-all alrededor de la construcción del objeto WRESTClient? Si está volcando núcleos en esta línea, lo más probable es que genere una excepción y, si la detecta, podrá obtener más información útil sobre errores a partir de esa excepción.
Aparte de eso, es hora de romper el depurador como sugirió.