NutzWk 5.x 已發布一段時間,這段時間基於此版本開發了智慧水務系統(NB-IOT)、某物聯網平台、某設備租賃平台、某智慧睡眠平台、某智慧園區項目等,開發和部署過程中遇到一些小問題,開這個帖子把一些經驗分享出來省的大家走彎路。
項目地址1: https://github.com/Wizzercn/NutzWk
項目地址2: https://gitee.com/wizzer/NutzWk
1、運行環境
其實項目readme和wk-wiki 已經寫的很清楚了,在此強調一下,不是說非這些版本不可,但對於新手來說最好版本號保持一致,能跑起來了您再折騰玩~~
JDK 8 162 +
Maven 3.5.3 +
Redis 4.0.8 +
MySql 5.7 +
Zookeeper 3.4.11 +
2、開發環境
一般建議使用IDEA進行開發,因為是maven多模塊的項目,直接用IDEA打開項目根目錄,它會通過maven下載jar包,自動構建項目
然后如何啟動項目呢,有很多種方式,簡單說幾個:
1)打開每個NB項目(nutzboot簡稱)項目里的main類,右擊運行,例如 cn.wizzer.sys.commons.core.***MainLauncher
2)通過IDEA 的Run 配置 Application 運行,詳見 https://github.com/Wizzercn/NutzWk/blob/nutzboot-dubbo/wk-wiki/01.QuickStart/01.02.Start.md
3)命令行在NB項目根目錄運行mvn compile nutzboot:run 或者IDEA右側Maven管理界面里通過插件運行,,詳見 https://github.com/nutzam/nutzboot-maven-plugin
3、啟動順序
保證MySQL、Redis、Zookeeper 都正常啟動且為默認端口及默認配置(當然這些配置項可以在application.properties 修改的)
1)MySQL創建一個空白數據庫,編碼格式為UTF-8,數據庫名稱 nutzwk_nb
2)NB項目的模塊啟動順序是 sys --> cms[可選] --> wx[可選] --> task[可選] --> web-platform --> web-api[可選]
3)如上所述,如果想運行訪問后台,只需要啟動 sys 和 web-platform即可,注意是有啟動順序的,其他模塊需要用就啟
4)task 定時任務是依賴於sys的,而web-platform系統管理對定時任務管理是依賴於 task模塊的,如果你想讓task獨立運行並且不需要通過頁面進行管理,自己少做改動即可,不是不可以哦
4、部署注意事項
1)因為登錄頁面對密碼進行了RSA加密,有時候部署會遇到怎么也登錄不了,而后台拋異常 java.lang.SecurityException: JCE cannot authenticate the provider BC 的情況,解決方法在代碼注釋里已寫明了,不過很少有人去看
https://github.com/Wizzercn/NutzWk/blob/nutzboot-dubbo/wk-app/wk-nb-web-platform/src/main/java/cn/wizzer/app/web/commons/shiro/filter/PlatformAuthenticationFilter.java
1、編輯文件 /usr/java/jdk1.8.0_162/jre/lib/security/java.security
在9下面添加 security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
2、拷貝 bcprov-jdk16-143.jar 和 bcprov-jdk15-135.jar 到 /usr/java/jdk1.8.0_162/jre/lib/ext 目錄下
3、別問我上面兩個文件怎么找……
(如果您是https的話可以把RSA加密方式改掉棄用哦)
2)服務器注意事項:服務器時間同步做沒做、hosts里配沒配主機名hostname和127.0.0.1的映射關系、內存夠不夠用(有沒有給jar指定內存大小)等
5、其他
1)請關注 NutzWk 的動態,有新的版本發布建議及時更新,往往會修復問題或新增功能
2)如果 NutzWk 給了您幫助,或已用於生產, https://wizzer.cn/donation 歡迎打賞一定金額以資鼓勵,創造國內良好的開源環境
3)最后感謝獸獸及nutz社區廣大網友的幫助和鼓勵,沒有您們的支持,這個項目不會歷經6年多還在更新前進
PS:如有提問請新開帖~~~:)