---
# System prepended metadata

title: Spring 踩雷

---

# Spring 踩雷


* **Spring boot打包成jar後獲取classpath下文件失敗**
> 原因：打成jar包後必須以流(Stream)的方式讀取文件:
```
ClassPathResource resource = new ClassPathResource("static/myfile.json");
resource.getInputStream();
```

* **Spring boot打包成jar後丟到docker container運行，會出現時差**
>   原因：要校正docker的時區，DockerFile中的設定
:::info
FROM java:8
EXPOSE 8081
ADD UTM-System-1.0.jar UTM-System-1.0.jar
<font color="#ff0000">ENV TZ=Asia/Taipei</font>
<font color="#ff0000">RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone</font>
ENTRYPOINT ["java", "-jar", "UTM-System-1.0.jar"]
:::
 
> 也要注意連結資料庫得url有沒有設對時區

:::info
jdbc:mysql://127.0.0.1:3306/db?<font color="#ff0000">serverTimezone=GMT%2b8</font>
:::