簡體   English   中英

WSO2 C ++客戶端應用程序在調用Environment :: initialize方法時崩潰

[英]WSO2 C++ Client application crashes upon calling Environment::initialize method

我正在使用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;]。

在調試和發布模式下,代碼編譯都沒有問題。 應用在運行時崩潰。

任何幫助是極大的贊賞。

預先感謝您,普拉德普。

根據這個線程

當您將發布二進制文件鏈接到調試二進制文件時,會發生此問題。 調試版本和發布版本的內存結構不同,有時這可能會引起問題。 最好的辦法是在啟用調試的情況下構建WSF / CPP。 然后問題應該消失了。 或者,您可以將示例構建為發行版本。

因此,這給您兩個選擇:

  • 在發布模式下編譯。
  • 在啟用調試的情況下重建WSO2 WSF / C ++。 您可以在源項目的configure.ini文件中激活此選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM