簡體   English   中英

用於 jakartaee restful jpa Web 應用程序的 docker-compose 不起作用

[英]docker-compose for jakartaee restful jpa web application not working

我正在努力為一個簡單的 jakartaEE/JavaEE 寧靜 JPA Web 應用程序編寫 docker-compose 文件幾天。 DB是PostgreSQL,應用服務器是payara。 此應用程序向 DB 插入一些條目,並在每個休息調用響應中返回集合。 當我在本地安裝的 payara 和 Postgres 中部署相同的應用程序時,它工作正常。 但是 docker-compose 失敗並出現錯誤:

An error occurred during deployment: Class 
       com.docker.java.petstore.service.PetstoreService has unsupported major or 
      minor version numbers, which are greater than those found in the Java 
      Runtime Environment version 1.8.0_222. Please see the server.log for more details.

https://imgur.com/a/zVvVaGP

我嘗試從 payara 管理控制台部署 war 文件,但由於相同的錯誤而失敗。

相關代碼顯示在要點中: https : //gist.github.com/JohnyzHub/cf8e9560b8640dbfd27dc4bb98d5991c

使用的環境:

        java 11
        JakartaEE 8
        Payara appserver
        postgresql

使用glassfish-resource.xml文件動態創建連接池和數據源。

該錯誤看起來很奇怪,我使用的是 java 11 但該錯誤與特定的 java 8 版本有關。 我不知道這里有什么問題。

當我使用相同的 docker 文件部署沒有 JPA 層的類似 java 11 web 應用程序時,它在 docker 上運行良好。

如果需要其他詳細信息,請告訴我。

任何幫助表示贊賞。

Dockerhub上的官方Payara Docker 鏡像在內部使用 Java 8。 這與您的 Java 11 編譯源代碼沖突並且不起作用。

在 GitHub 上有一個懸而未決的問題,但不幸的是,現在回答了幾個月。

作為變通方法,要么選擇另一個應用程序服務器(例如 Open Liberty Universal Base Docker 映像具有最新 Java 版本的標簽),要么從例如 OpenJDK 11 基本映像構建您自己的 Docker 映像。

要弄清楚如何創建自己的 Docker 映像,我建議查看Adam Bien 的 Docklands 存儲庫,其中包含多個示例。

您的服務器的錯誤表明您在 docker 映像中使用比當前使用的 (JDK8) 更高的版本 (JDK11) 編譯類。

檢查 Application Server Docker 映像上使用的 Java 運行時。 然后使用該服務器的 JDK8 版本編譯 petstore,或者升級 docker 容器映像以使用比用於編譯的 JDK 更高的 JDK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM