我正在使用 WSO2 框架为我的一个项目编写基于 C++ 的 Web 服务。我能够安装框架、运行轴服务器并使用示例客户端程序对其进行测试。
当我尝试自己编写客户端时,代码编译时没有任何问题或警告。但是,应用程序在运行时崩溃而没有正确的消息。我尝试放置一些控制台 std::count 并发现崩溃是在调用 Environment::initialize 方法期间发生的。请参阅下面的客户端代码。这几行代码构成了整个客户端应用程序,因此没有遗漏任何代码。
int main(int argc, char *argv[]){
ServiceClient * sc;
Environment::initialize("hello.log", AXIS2_LOG_LEVEL_TRACE);
string end_point = "http://localhost:9090/axis2/services/hello";
sc = new ServiceClient(end_point);
OMElement * payload = new OMElement("greet");
payload->setText("Hello Service!");
try
{
OMElement* response = sc->request(payload, "");
if (response)
{
cout << endl << "Response: " << response << endl;
}
}
catch (AxisFault & e)
{
if (sc->getLastSOAPFault())
{
cout << endl << "Fault: " << sc->getLastSOAPFault() << endl;
}
else
{
cout << endl << "Error: " << e << endl;
}
}
delete payload;
}
我将 Visual Studio 2010 用于 IDE 和编译器。我已经包含了所有头文件和必要库的路径 [axutil.lib;axiom.lib;axis2_parser.lib;axis2_engine.lib;wso2_wsf.lib;]。
代码编译在调试和发布模式下都没有问题。应用程序在运行时崩溃。
任何帮助是极大的赞赏。
提前谢谢你,普拉迪普。