c++ - 编写简单的 WSO2/C++ Web 服务客户端时崩溃

标签 c++ web-services wso2

有没有人能够使用 WSO2/C++ web 与客户端一起成功运行?服务包?我已经尝试了几乎所有我能想到的方法,但每次我尝试运行一个非常简单的客户端时,我都会崩溃。这是他们的示例程序之一的一些示例代码...

#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 的源代码进行构建并逐步检查崩溃的代码,但我希望有人以前遇到过这个问题并立即提供一些反馈。

最佳答案

您是否考虑过在 WRESTClient 对象构造周围放置一个 try/catch-all block ?如果您在此行上进行核心转储,那么它很可能会抛出异常,如果您捕获了它,那么您可能能够从该异常中获得更有用的错误信息。

除此之外,是时候按照您的建议打开调试器了。

关于c++ - 编写简单的 WSO2/C++ Web 服务客户端时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/440827/

相关文章:

wso2 - 使用 scim2 apis 在 wso2 中添加用户时如何添加角色/组是 5.9.0?

java - 如何从 WSO2 ESB Synapse 处理程序内的 REST 请求的 JSON 正文中提取数据

c++ - 对带有运算符重载的移动语义感到困惑

C++ SFINAE enable_if_t 在成员函数中,如何消除歧义?

c++ - CBC MAC : message length and length prepending

ios - 如何存储在线图像和数据以供离线使用

java - ServiceClass对象未实现以下形式的所需方法: OMElement add(OMElement e)

xmlns :soap attribute of SOAP element

wso2 - 如何使用enrich和foreach/iterate来修改SOAP请求体?

c++ - CMFCCaptionMenuButton 替代品?