Javaで簡単なHTTPサーバーを作成する最も簡単な方法は何ですか?これを促進する共通ライブラリはありますか?応答する必要があるのはGET/POST
、およびアプリケーションサーバーを使用できません。
これを達成する最も簡単な方法は何ですか?
Jetty を使用します。 embedding Jetty のチュートリアルを次に示します。 (これは 古いチュートリアル です。)
Jettyは非常に軽量ですが、サーブレットコンテナを提供します。これは、「アプリケーションサーバー」の使用に対する要件と矛盾する場合があります。
Jettyサーバーをアプリケーションに埋め込むことができます。 Jettyでは、埋め込みORサーブレットコンテナオプション。
これは私がこれについて行く方法です:
ServerSocket
リスニングを開始します(おそらくポート80で)。ServerSocket
が利用可能になり、他の接続をリッスンして受け入れられるようになります)。Content-Type
など)およびHTML。FirefoxのFirebugを使用してヘッダーの例を見ると便利です。これはエミュレートしたいものです。
このリンクを試してください:- Javaのマルチスレッドサーバー
最も簡単なのは Simple チュートリアルがあり、サーブレットAPIではなくWEB-INFなし、依存関係なしです。単一のJAR内の単純な軽量HTTPサーバー。
Sun JDKを使用している場合は、 this built in library を使用できます。
使用方法については、このサイトをご覧ください。
ない場合は、複数の ここにオープンソースHTTPサーバー をソフトウェアに埋め込むことができます。
私はこの例がここにないことに驚いています:
編集>>上記のリンクにアクセスできません。 POSTの例の後にHTTPの例へのリンクが続きます。
if (!conn.isOpen()) {
Socket socket = new Socket(Host.getHostName(), Host.getPort());
conn.bind(socket);
}
BasicHttpEntityEnclosingRequest request = new
BasicHttpEntityEnclosingRequest("POST",
"/servlets‐examples/servlet/RequestInfoExample");
request.setEntity(requestBodies[i]);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());
httpexecutor.preProcess(request, httpproc, coreContext);
HttpResponse response = httpexecutor.execute(request, conn, coreContext);
httpexecutor.postProcess(response, httpproc, coreContext);
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
if (!connStrategy.keepAlive(response, coreContext)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
}
http://hc.Apache.org/httpcomponents-core-ga/httpcore/examples/org/Apache/http/examples/
Java 6にはデフォルトの組み込みhttpサーバーがあります。
ところで、残りのWebサービスを使用する予定の場合、ここに jerseyを使用した簡単な例 があります。
しばらく前にJavaで簡単なHTTPサーバーを作成する方法を説明したチュートリアルを書きました。コードが何をしているのか、そしてチュートリアルが進むにつれてサーバーがそのように書かれている理由を説明します。役に立つかもしれません http://kcd.sytes.net/articles/simple_web_server.php
Jetty は、HTTPサーバーを簡単に組み込む素晴らしい方法です。ハンドラーを接続する独自の簡単な方法をサポートし、さらに機能が必要な場合は完全なJ2EEアプリサーバーです。
Tomcatを埋め込むことは、このようなことが進むにつれて比較的簡単です。 こちら それについての良いStackOverflowリファレンス。
ndertow は軽量の非ブロッキングです 組み込みWebサーバー これは非常に迅速に起動して実行できます。
public static void main(String[] args) {
Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler((exchange) -> exchange.getResponseSender().send("hello world"))
.build().start();
}