Domanda

Qualcuno è stato in grado di funzionare correttamente con un client utilizzando i servizi WSO2 / C ++ web pacchetto? Ho provato praticamente tutto ciò a cui riesco a pensare, ma ogni volta che provo a eseguire un client molto semplice ho un arresto anomalo. Ecco un po 'di codice di esempio da uno dei loro programmi di esempio ...

#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;
}

Ottengo un arresto ogni volta nel punto della costruzione dell'oggetto WRESTClient. Sembra essere un problema da qualche parte nel codice WSO2 ma non ricevo alcun messaggio di errore che indica quale sia il problema esatto. Il mio prossimo passo sarà costruire contro la fonte per WSO2 e passare attraverso il codice che si sta bloccando, ma spero che qualcuno abbia già riscontrato questo problema e abbia un feedback immediato.

È stato utile?

Soluzione

Hai pensato di mettere un blocco try / catch-all attorno alla costruzione dell'oggetto WRESTClient? Se stai eseguendo il core dumping su questa linea, è probabile che stia generando un'eccezione e, se la prendi, potresti essere in grado di ottenere informazioni utili più utili su quell'eccezione.

A parte questo, è ora di interrompere il debugger come hai suggerito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top