2009-01-13 22 views
2

Est-ce que l'un d'entre eux a réussi à s'exécuter avec un client en utilisant le package de services WSO2/C++ web? J'ai essayé à peu près tout ce que je peux penser à chaque fois que j'essaie d'exécuter un client très simple, je tombe en panne. Voici quelques exemples de code d'un de leurs programmes par exemple ...Crash écrivant un client de service Web WSO2/C++ simple

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

Je reçois un accident chaque fois au moment de la construction de l'objet WRESTClient. Il semble que ce soit un problème quelque part dans le code WSO2 mais je ne reçois aucun message d'erreur indiquant quel est le problème exact. Ma prochaine étape consistera à construire contre la source pour WSO2 et à passer à travers le code qui plante, mais j'espère que quelqu'un a déjà rencontré ce problème et a des retours immédiats.

Répondre

1

Avez-vous envisagé de placer un bloc try/catch-all autour de la construction de l'objet WRESTClient? Si vous effectuez un dumping de base sur cette ligne, il y a de fortes chances pour qu'elle génère une exception, et si vous l'attrapez, vous pourrez obtenir des informations d'erreur plus utiles à partir de cette exception.

À part cela, il est temps de sortir le débogueur comme vous l'avez suggéré.