Pregunta

¿Alguno ha podido ejecutarse con éxito con un cliente utilizando los servicios WSO2 / C ++ web ¿paquete? He intentado casi todo lo que puedo pensar, pero cada vez que intento ejecutar un cliente muy simple, me cuelgo. Aquí hay un código de muestra 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;
}

Me cuelgo 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 recibo ningún mensaje de error que indique cuál es el problema exacto. Mi próximo paso será construir contra la fuente de WSO2 y recorrer el código que se está bloqueando, pero espero que alguien haya encontrado este problema antes y tenga algún comentario inmediato.

¿Fue útil?

Solución

¿Ha considerado poner un bloque try / catch-all alrededor de la construcción del objeto WRESTClient? Si está volcando el núcleo en esta línea, entonces es probable que arroje una excepción, y si la detecta, entonces podría obtener información de error más útil de esa excepción.

Aparte de eso, es hora de romper el depurador como sugirió.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top