最後更新日期:2014-5-18
author:kagula
內容簡介:
cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一些第三方庫,其它地方已經介紹怎麼build,所以這裡不重複了。
環境:windows8.1 64bit、visual studio 2013 professional sp1
zlib-1.2.8、openssl-1.0.1g、pcre-8.35、icu4c-53_1、 cppcms-1.0.4、python-3.4.0.、cmake2.8.12.2、
boost 1.55
搭建cppcms開發環境
cppcms依賴zlib、openssl、pcre、icu4c、python和win sdk等第三方庫或工具
我電腦中編譯好的庫,它們的位置
zlib
標頭檔案位置:d:/sdk/zlib-1.2.8;d:\sdk\zlib-1.2.8\build;
庫檔案位置:d:/sdk/zlib-1.2.8/build/release
openssl
標頭檔案位置:d:\sdk\openssl-1.0.1g\include
庫檔案位置:d:\sdk\openssl-1.0.1g\out32dll
icu4c
開啟d:\sdk\icu4c-53_1-src\icu\source\allinone\allinone.sln檔案,build出release版本即可。
標頭檔案位置:d:\sdk\icu4c-53_1-src\icu\include
庫檔案位置:;d:\sdk\icu4c-53_1-src\icu\lib
pcre
使用cmake工具在d:\sdk\pcre-8.35\build\下生成pcre.sln檔案,使用visualstudio 2013開啟並編譯即可。
標頭檔案位置:d:/sdk/pcre-8.35;d:\sdk\pcre-8.35\build;
庫檔案位置:d:\sdk\pcre-8.35\build\release
準備好後就可以構建cppcms庫了
新增變數
cmake_include_path
型別為filepath
值為d:/sdk/pcre-8.35;d:\sdk\pcre-8.35\build;d:/sdk/zlib-1.2.8;d:\sdk\zlib-1.2.8\build;d:\sdk\icu4c-53_1-src\icu\include;d:\sdk\openssl-1.0.1g\include
新增變數
cmake_library_path
型別為filepath
值為d:\sdk\pcre-8.35\build\release;d:/sdk/zlib-1.2.8/build/release;d:\sdk\icu4c-53_1-src\icu\lib;d:\sdk\openssl-1.0.1g\out32dll;c:\programfiles (x86)\microsoft sdks\windows\v7.1a\lib
重新configure後generate。開啟新生成的sln檔案。buildsolution有四個選項debug、minsizerel(最小發行版)、release、relwithdebinfo(帶debug資訊的發行版),我們這裡選release模式build。
編譯過程中碰到
[1]zconf.h檔案找不到的問題,這個檔案在我的d:\sdk\zlib-1.2.8\build路徑下,給它位址,這個問題解決。
[2]json.cpp 檔案 return is_ **行通不過, 改為returnbool(is_)即可,因為visual studio 2013(c++11標準)要求istream顯式(explicitly)轉換bool型別。
[3]test_formatting.cpp和test_boundary.cpp原始碼檔案因為出現特殊字元(其實是檔案語言編碼的問題)導致無法編譯,跳過,因為這兩個測試專案不能編譯,不影響我們以後使用cppcms庫。
[4]修改d:\sdk\cppcms-1.0.4\booster\booster\nowide\fstream.h檔案第44行,
if(my_base_type::open(convert(s).c_str(),mode))
void main(const char* url);
};void hello::main(const char* url)
int main(int argc, char ** argv)
catch (std::exception const &e) }
新增configure.js檔案,源**清單如下
按[f5]以debug方式執行即可。
現在你可以使用http://localhost:8080/這個位址訪問你的http伺服器了。
我測試了下面這個鏈結中貼出的**,可以用,但是如果你的測試程式是在debug模式,你只能呼叫debug模式編譯出來的cppcms動態庫,如果你是在release模式,就只能呼叫release模式編譯出來的cppcms動態庫,否則會丟擲「bad allocation」的錯誤。
服務端**
使用cppcms開發json_rpc服務
}cppcms在linux下的編譯和安裝
官網的hello world例子
深入學習 cppcms
cppcms和nginx協同工作
cppcms支援檔案上傳
boost庫學習隨記五 boost.locale 之字元轉換 gbkutf8 big5 string wstring等
how to build libiconv with microsoft visualstudio
注意,ie6不支援json_rpc技術。
json服務端簡易實現
orm模型中宣告乙個方法,可以將例項化後物件的資料轉換為字典 式 class product detail db.model 宣告產品明細表 tablename t s product detail id db.column db.integer,primary key true color db....
http服務端架構演進
什麼叫正向 什麼叫反向 服務 與負載均衡的差別 有了nginx,為啥還需要lvs 都有哪些負載均衡的方式 在前面文章中我們介紹過最簡單的一種客戶端 服務端響應模式,如下 這是http服務最簡單的一種形式,服務端就一層web伺服器。現在我們服務端變複雜了,使用者數增加了,併發量增加了。對我們服務端要求...
服務端系統
1.高可用 容錯和降級。容錯級別上,忽略次要 error 服務降級 程式中部分error是可以忽略處理的,或者打個日誌標記下,而不用結束整個執行流程。服務降級是指,當依賴的非核心模組出問題時,可以選擇不請求或者熔斷式請求 過載保護 資料可以不吐給客戶端,這就要求對資料或者服務進行級別劃分,優先保證使...