埋め込みJettyを使用したシンプルなJavaアプリ
この例では、Jettyサーバーを埋め込んだシンプルなJavaアプリを構築する手順を説明します。Eclipse Jettyは、軽量なJava Webサーバーであり、サーブレットコンテナでもあります。このアプリケーションをコンパイル、バンドルし、Java SEタイプとしてAppSailサービスに関連付け、コンソールにデプロイします。
-
任意のIDEから新しいJavaプロジェクトを作成します。
-
ソースディレクトリに以下のライブラリを含めます。この例では、新しいフォルダを作成してdepsという名前を付けています。これらのJARファイルには、Jettyサーバーをアプリケーションに埋め込むためのすべてのサーブレット、ユーティリティファイル、その他の依存関係が含まれています。これらの依存関係は公式Mavenリポジトリから取得できます。Maven依存関係として追加することもできます。
javax.servlet-api-3.1.0.jar
jetty-io-9.4.50.v20221201.jar
jetty-server-9.4.50.v20221201.jar
jetty-util-9.4.50.v20221201.jar
jetty-http-9.4.50.v20221201.jar
jetty-security-9.4.50.v20221201.jar
jetty-servlet-9.4.50.v20221201.jar
jetty-util-ajax-9.4.50.v20221201.jar
- 埋め込みJettyアプリケーションを作成するには、org.eclipse.jetty.server.Serverクラスのインスタンスを作成し、メインコードで環境変数X_ZOHO_CATALYST_LISTEN_PORTを使用してリッスンポートを参照する必要があります。これらのリクエストを処理するためにサーブレットハンドラーを追加する必要があります。メインディレクトリに以下のJavaファイルを作成し、以下のサンプルコードスニペットを追加します:
CustomJettyServer.java
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
public class CustomJettyServer
{
public static void main( String[] args ) throws Exception
{
String port = System.getenv("X_ZOHO_CATALYST_LISTEN_PORT");
int listenPort;
if(port != null && !port.isEmpty()) {
listenPort = Integer.parseInt(System.getenv("X_ZOHO_CATALYST_LISTEN_PORT"));
} else {
listenPort = 9000;
}
Server server = new Server(listenPort);
ServletContextHandler handler = new ServletContextHandler();
handler.addServlet(ServletHandler.class.getName(), "/");
server.setHandler(handler);
server.start();
}
}
ServletHandler.java
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletHandler extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String path = req.getServletPath();
System.out.println(path);
try {
resp.getWriter().write("Hello ABC");
resp.getWriter().close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doHead(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
}
- 以下のコマンドを実行してアプリケーションをコンパイルします:
javac -cp ".:./*:./deps/*" *.java
-
CLIから同じディレクトリでAppSailサービスを初期化するか、既存のプロジェクトディレクトリに追加できます。アプリのソースはアプリケーションのディレクトリである必要があります。アプリサービスの初期化時に以下の値を指定します:
Stack: Java 8
Platform: Java SE -
depsフォルダ内のJARファイルとともに、コンパイル済みファイルが初期化時に指定したビルドディレクトリに追加されていることを確認します。Catalystは、リモートコンソールへのデプロイ時にアプリファイルを自動的にZIP圧縮します。
-
コンソールにアプリサービスをデプロイします。
-
コンソールから以下のスタートアップコマンドを設定できます:
java -cp ".:./*:./deps/*" *.java
デプロイ前にapp-config.jsonファイルでも設定できます。
デプロイされたアプリサービスには、そのエンドポイントURLからアクセスできます。
最終更新日 2026-02-23 18:09:41 +0530 IST
Yes
No
Send your feedback to us