TSK 統計資料檢索システム(Tōkei Shiryō Kensaku)建置與部署說明(基於 Play Framework 2.1.5)

| Work Notes | 8 Reads

系統概述

技術棧: Play Framework 2.1.5(Java/Ebean/SBT 0.12.2)
位置: application/tsk 為主專案根目錄
DB: MySQL,資料庫名預設 tsk_db
語言: 日文界面(application.langs="ja"


環境需求

  • JDK: 建議 JDK 7 或 8(2.1.5 與新 JDK 不相容)

  • MySQL: 5.5–5.7(連線字元集使用 UTF8)

  • 作業系統: Windows(本專案含 play.bat),或 Linux(使用 play

  • 依賴: 需連網下載依賴(此版本依賴老舊倉庫,若內網需預先快取)


資料庫設定

建庫與字元集
建立 tsk_db 並設 utf8 字元集(非 utf8mb4
例:

CREATE DATABASE tsk_db DEFAULT CHARACTER SET utf8;

修改帳密(若非 root/toukei2013)
檔案: application/tsk/conf/application.conf

41: db.default.driver=com.mysql.jdbc.Driver  
42: db.default.url="jdbc:mysql://localhost/tsk_db?characterEncoding=UTF8"  
44: db.default.user=root  
45: db.default.password=toukei2013  

初始資料必備

  • 登入驗證依賴 DB 使用者與加密密碼

  • 驗證邏輯: application/tsk/app/models/SystemUsers.java:46

  • 未附 DDL/seed,請匯入既有 schema/資料(否則無法登入)

  • 關閉 Evolutions(遷移):

    application/tsk/conf/application.conf:58  
    evolutionplugin=disabled
    

開發模式執行(預設 9000 埠)

切到專案: cd application\tsk  
首次編譯(可選): ..\..\play.bat clean compile  
啟動: ..\..\play.bat run  
開啟: http://localhost:9000/

如出現「已有程序在執行」:
刪除 application/tsk/RUNNING_PID 後重試


生產環境部署(Windows)

建議變更密鑰

application/tsk/conf/application.conf:8  
application.secret="..."(請改為強隨機值)

後台啟動(預設腳本使用 80 埠,需系統管理員權限)

  • 內建腳本僅適用 C:\Program Files\... 路徑,請改為你的實際路徑或直接執行:

cd application\tsk  
刪除舊 PID: del /Q RUNNING_PID  
啟動背景模式: ..\..\play.bat -Dhttp.port=80 start  
停止: 刪除 RUNNING_PID 或關閉程序

改用自訂埠(避免 80 權限問題)

..\..\play.bat -Dhttp.port=9000 start

對外綁定(需要外網存取)

加上 -Dhttp.address=0.0.0.0

發佈包(可選)

..\..\play.bat dist  
產生 ZIP,在 target 中展開後以 bin\tsk.bat 執行

關鍵檔案

  • 配置: application/tsk/conf/application.conf:12
    application.langs="ja"

  • DB/密鑰: application/tsk/conf/application.conf:8, 41–45, 58, 65, 78, 81

  • SBT/Play 版本: application/tsk/project/plugins.sbt:8(Play 2.1.5)

  • 專案定義: application/tsk/project/Build.scala:7(appName=tsk, MySQL 驅動)

  • 啟動腳本(範例,請改路徑):
    application/tsk/tsk_start.bat:6 play -Dhttp.port=80 start


常見問題

  • 連線錯誤/無資料表:
    確認 MySQL 運行、帳密/權限正確、已匯入 schema/資料

  • 依賴下載失敗:
    老舊倉庫(plugins.sbt:5 以 HTTP)可能需代理/私有倉庫或離線快取

  • JDK 不相容:
    請改用 JDK 7/8;若報 PermGen,可在 JAVA_OPTS 增加 -XX:MaxPermSize=256m

  • 已在執行:
    刪除 application/tsk/RUNNING_PID 後再啟動

  • 80 埠被占用/無權限:
    -Dhttp.port=9000 或以管理員權限執行

This article was last edited at