最近因為工作需要,開始在研究如何自定義 logback 的 Appender
不過在開始嘗試實作之前,因為想要知道整個 slf4j 到 logback 等的整個執行流程為何
因此就做了這篇的簡單的研究。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2016年9月6日 星期二
SLF4J 與 Logback 的運作流程
2016年9月5日 星期一
2016年8月24日 星期三
Docker container 的實體路徑
Docker 創造出來的 container,各自的實體路徑是在以下的位置:
/var/lib/docker/devicemapper/mnt/<container id>/rootfs/
參考資料
Apache 2 SSL 的 Passphrase 問題
在 Apache 2 裡,如果要使用有被 Passphrase 保護的 key 給 SSL 使用
必須在某處提供 SSL 的 Passphrase 才能讓 Apache 正常啟動。
一般內建的方法是使用 builtin,也就是 Apache 啟動時會直接詢問使用者
其他方法則是可以把 Passphrase 寫在某個檔案裡,要 Apache 啟動時去讀取。
而寫設定的地方,在我的 container 中是放在 /etc/apache2/mods-enabled/ssl.conf 裡。
如果是不想那麼麻煩地處理 Passphrase 問題,想把他從金鑰中移掉
則可以參考 [2] 的方法,只需要指定輸入和輸出的金鑰檔名,然後輸入 Passphrase
就可以重製出一個不需要 Passphrase 的金鑰了。
以 RSA 的金鑰來說,指令如下:
openssl rsa -in /path/to/your/rsakey.key -out /path/to/your/rsa.nocrypt.key
參考資料
2016年8月9日 星期二
(書籤) SSL 憑證
參考資料:
- [筆記] SSL 憑證購買記
- 憑證簽章要求 (CSR) 產生說明 - Apache SSL
- OpenSSL - 金鑰與憑證的管理
- 使用 openssl 產生 SSL 電子證書
- Apache Requires SSL / Passphrase
- Difference between OpenSSL and keytool
- OpenSSL 操作筆記 - 檔案格式轉換
- Difference between trustStore and keyStore in Java – SSL
- How to add or list certificates from keystore or trustStore in Java - Keytool Example
- Re:[問題] URLConnection 產生了HTTP 405 Exception [Re:piaoyi]
2016年8月4日 星期四
2016年7月26日 星期二
(書籤) codegen
General code generator for Java
Libraries for Generating Java Codes
Libraries for Generating Maven
Swagger’s code generator
2016年7月25日 星期一
Amazon Beanstalk 的應用程式位置
隨筆紀錄,如果把 Java 程式部署到 Beanstalk 上
預設在 Beanstalk 的路徑會是 /var/app/current/application.jar。
2016年7月4日 星期一
透過 Gson 輸出 pretty print 的 JSON
當使用 Gson 來解析 JSON 格式時,如果需要讓輸出的 JSON 以 pretty print 格式輸出
可以利用簡單的小工具達成這個目的。
Gson gsonBuilder = new GsonBuilder().setPrettyPrinting().create(); gsonBuilder.toJson(....);
不過 Gson 的這個工具,預設會自動做 HTML 跳脫,因此特殊符號都會自動被置換成 Unicode 表示形式
如果想要關掉 HTML 跳脫,可以使用 .disableHtmlEscaping() 方法。
Gson gsonBuilder = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); gsonBuilder.toJson(....);
2016年7月2日 星期六
對 Jersey 製作的 RESTful API 做單元測試(二):啟用 Servlet
Jersey 中使用 Jersey Test Framework 做測試時
如果遇到需要使用 Servlet 的狀況,例如使用了 @Context HttpServletRequest request
可能就會注意到,HttpServletRequest 這類應該要自動被注入的東西,在測試時都沒有被注入
因此會發生像是 NullPointerException 等等的錯誤。