web-dev-qa-db-ja.com

TomcatなしでApache2.2でJavaアプリを実行するにはどうすればよいですか?

JavaでJSPやサーブレットを使用しないWebサービスを構築しており、Tomcatをインストールして構成せずにApache HTTPサーバーで実行したいと考えています。これは(簡単に)可能ですか?どうすればそれを実行できますか?

私はこれに関する情報を探していましたが、私が遭遇した唯一のことは、Tomcatをインストールする必要があるmod_jkTomcatコネクタです。私は何かが足りないのですか?

16
nauten

まず、サーブレットはWeb開発のJavaの非常に基本的なものです。したがって、Webサービスなど、実行しているWeb開発には、Tomcatとしてサーブレットコンテナが必要です。

したがって、質問に対する答えは、サーブレットコンテナではないため、「ApacheHTTPサーバー上でのみ実行することはできません」です。

6
Marcelo Dias

もちろん可能です。 mod_cgiを使用してそれを行うことができます。

非常に簡単な例は次のようになります。

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello Java CGI world!");
    }
}

次に、Javaクラスを実行するスクリプトファイル(HelloWorld.shtml-実行権限を忘れないでください))

#!/bin/bash
echo "Content-type: text/html"
echo ""

/usr/bin/Java HelloWorld

Apache confで、次のようにスクリプトディレクトリを定義するだけです。

ScriptAlias /cgi-bin/ /Users/hectorsuarez/Proyectos/test/cgi-bin/
<Directory "/Users/hectorsuarez/Proyectos/test/cgi-bin">
    SetHandler cgi-script
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

それでおしまい!。これは非常に単純で些細な例です。

テンプレートエンジンと、着信CGI呼び出しを管理するためのはるかに優れた方法が必要になる可能性があるため、これは複雑になります。しかし、はい、それは可能です。

15
Barenca

何をしたいのかは完全には明確ではありませんが、HTTPリクエストを処理してApache経由で公開できるスタンドアロンのJavaアプリを実行したいと思います。その場合、mod_proxyを使用してApacheを構成することでそれを行うことができます。 This これを行う方法の適切な例かもしれません。

3
MK.

いいえ、Tomcat、jetty、jboss、Glassfishはほぼ必須です

0
Andrew