帕亞拉簡介
1. 概述
Payara Server 是 Java 生態系統中知名的應用程式伺服器。與 GlassFish 和 Apache TomEE 類似,它允許我們部署 Jakarta EE 應用程式並使其可供使用者使用。
在本教程中,我們將介紹在本機電腦上下載和安裝 Payara 的步驟。此外,我們還將部署一個簡單的 Jakarta EE 應用程序,以驗證伺服器是否正常運作。
2. Payara 伺服器
Payara 伺服器是 GlassFish 伺服器的一個分支,旨在建立和運行企業級 Java 應用程式。它是一個完全符合 Jakarta EE 標準的應用程式伺服器,支援 EJB、WebSocket、JPA 等技術。此外,Payara 伺服器還可以用於運行 MicroProfile 應用程式。
此外,Payara 提供了一個社群版伺服器,適用於開發、測試和部署 Jakarta EE 應用程式。社群版還提供兩種發行版:完整版(包含完整的 Jakarta EE 平台)和 Web 版(提供功能精簡的輕量級運行時) 。
3. 下載並安裝 Payara
首先,讓我們從 Payara 官方下載頁面下載最新的Payara 伺服器社群版(完整設定檔) 。
下載完成後,我們將 ZIP 壓縮包解壓縮到您選擇的目錄。解壓縮後的 ZIP 壓縮包包含以下目錄:
至此,Payara 伺服器已安裝到我們的機器上。
此外,Payara Server 也捆綁了一個名為asadmin命令列管理工具。這個命令列工具允許我們啟動和停止伺服器、管理網域、部署應用程式以及執行各種管理任務。
在 Payara Server 中,網域是一個獨立的執行環境,擁有自己的資源、配置和應用程式。預設情況下,Payara 會建立一個名為domain1網域,當未指定其他網域時,就會使用該網域。
要啟動伺服器,讓我們導航到bin目錄並執行start-domain命令:
$ ./asadmin start-domain domain1
上面的命令會啟動伺服器。如果我們沒有指定域名,Payara 會自動啟動預設domain1 。
接下來,我們可以透過造訪http://localhost:8080/來驗證伺服器是否正在運行,該頁面會顯示來自 Payara 的歡迎訊息:
此外,我們可以使用以下 URL 存取管理控制台: http://localhost:4848 。
接下來,我們使用stop-domain命令停止伺服器:
$ ./asadmin stop-domain domain1
上述指令會停止伺服器。
最後,我們可以使用以下命令重啟網域:
$ ./asadmin restart-domain domain1
我們可以使用create-domain命令建立一個新網域:
$ ./asadmin create-domain NAME_OF_THE_DOMAIN
上面的指令建立了一個具有指定名稱的新網域,我們可以使用start-domain指令啟動建立的網域。
伺服器啟動後,讓我們部署一個簡單的 Java servlet。
4. 簡單的 Hello Payara Servlet
為了進一步測試伺服器,我們創建一個簡單的 Jakarta EE 應用程序,在網頁瀏覽器中顯示「 Hello Payara 」。
首先,讓我們將jakarta.servlet-api依賴項加入pom.xml中:
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
jakarta.servlet-api依賴項提供了用於編寫 Jakarta servlet 的類別。此外,我們將作用域標記為provided 。這意味著 servlet API 已在運行時由應用程式伺服器提供,不應打包到產生的 WAR 檔案中。
另外,我們也要指示 Maven 將應用程式打包成 WAR 檔案而不是預設的 JAR 檔案:
<packaging>war</packaging>
接下來,我們建立一個簡單的 servlet 類別:
@WebServlet(name = "HelloPayara", urlPatterns = { "/hello" })
public class HelloPayara extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.printf("""
<html>
<head> <title> Payara Server </title> </head>
<body> <h2> Hello Payara </h2> </body>
</html>
""");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
}
在上面的程式碼中,我們定義了一個 servlet,當向/hello端點發出 GET 請求時,該 servlet 會傳回一個簡單的 HTML 頁面。
最後,讓我們執行以下 Maven package 命令,將應用程式打包成 WAR 檔:
$ mvn clean package
上述指令會在target目錄中建立一個 WAR 檔。
5. 部署範例應用程式
Payara Server 提供了多種應用程式部署選項。我們可以使用管理控制台,也可以直接使用asadmin指令部署應用程式。
5.1. 使用asadmin指令進行部署
讓我們使用asadmin命令部署我們的範例應用程式。
首先,我們必須確保伺服器正在運行。如有必要,我們可以按照前面描述的方法啟動或重新啟動伺服器。
接下來,我們切換到解壓縮後的 Payara 安裝目錄下的bin目錄。然後,執行以下命令來部署應用程式:
$ ./asadmin deploy /PATH_TO_THE_WAR_FILE/target/jakarta-1.0-SNAPSHOT.war
在上面的命令中,我們使用deploy命令以及 WAR 檔案的路徑將應用程式部署到伺服器。
部署成功後,我們可以透過開啟網頁瀏覽器並造訪http://localhost:8080/jakarta-1.0-SNAPSHOT/hello來存取該應用程式。
5.2. 使用管理控制台進行部署
或者,我們也可以使用管理控制台部署應用程式。開啟瀏覽器,造訪http://localhost:4848 。預設網域無需密碼即可存取管理控制台。
這是管理員控制台首頁:
接下來,我們點擊側邊欄中的Applications來查看和管理已部署的應用程式:
目前還沒有部署任何應用程式。讓我們點擊Deploy按鈕上傳我們的 WAR 檔案:
在部署頁面,我們選擇Packaged File to be Uploaded to the Server選項,然後瀏覽本機目錄找到 WAR 檔案並上傳。最後,點擊OK按鈕開始部署程序。
部署完成後,我們將被重新導向回Applications頁面:
從上圖中我們可以看到,我們的應用程式已成功部署,並已列在已部署應用程式清單中。我們可以透過造訪http://localhost:8080/jakarta-1.0-SNAPSHOT/hello:
以上頁面確認應用程式已成功部署。
6. 何時使用 Payara 伺服器
Payara Server 非常適合建立 MicroProfile 或 Jakarta EE 應用程式的團隊,這些應用程式需要成熟且符合標準的執行環境。與 Apache Tomcat 等輕量級替代方案相比, Payara 提供了一個功能齊全的應用程式伺服器,內建了 JDBC 連接池、JPA 支援和 RESTful Web 服務等企業級功能,從而減少了對額外外部庫的需求。
然而,使用 Payara 也存在一些權衡取捨。 Payara 企業版需要付費訂閱,而且作為一款完整的應用程式伺服器, Payara 通常比 Tomcat 或 Jetty 等輕量級替代方案佔用更多記憶體。此外,如果應用程式只需要基本的 Servlet 功能,使用 Payara 可能會造成不必要的開銷。
7. 結論
本文介紹如何在本機上下載、安裝和啟動 Payara Server。我們也了解如何透過編寫一個基本的 servlet 並將其部署到 Payara Server 上來部署一個簡單的 Jakarta EE 應用程式。
與往常一樣,該範例的完整原始程式碼可在 GitHub 上找到。