緊接上文,下面筆者來列舉咱們在升級到 Java11
遇到的坑(若是你也遇到其它的問題,歡迎你們留言交流)。java
在 Linux 環境 Java11 在驗證碼和 Excel 部分功能會使用到字體,這就觸發 Java11 的字體問題。git
$JAVA_HOME/lib
目錄下建立 fontconfig.properties 文件。內容以下:github
version=1
sequence.allfonts=default
複製代碼
sudo yum install fontconfig
sudo yum install urw-fonts
sudo fc-cache -f
複製代碼
詳情能夠查看 open jdk github issues
:github.com/AdoptOpenJD…api
Java11 刪除了 Java EE modules,其中就包括 java.xml.bind (JAXB)。bash
啓動時提示微服務
WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/com/thoughtworks/xstream/xstream/1.4.10/xstream-1.4.10.jar) to field java.util.TreeMap.comparator
複製代碼
解決方案就是你能夠手動添加相關依賴。post
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
複製代碼
詳細狀況能夠查看:stackoverflow.com/questions/5…字體
因爲刪除部分API,如下類找不到ui
sun.misc.BASE64Encoder、sun.misc.BASE64Decoder
複製代碼
解決步驟: 使用java.util.Base64.Encoder
、java.util.Base64.Decoder
替換spa
當咱們使用 Eureka
做爲註冊中心時,因爲移除依賴的JAXB模塊。
The JAXB modules which the Eureka server depends upon were removed in JDK 11. If you intend to use JDK 11 when running a Eureka server you must include these dependencies in your POM or Gradle file.
複製代碼
須要手動引入:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</dependency>
複製代碼
本系列文章由微服務核心組件mica做者如夢技術共同整理撰寫, 若有參考或者轉載,請保留原做者和註明出處。