投稿

ラベル(Tomcat)が付いた投稿を表示しています

Raspberry PiのTomcat 9にLet's Encryptを

Raspberry Piといえども最近はTLSが必要らしいので早々にTLS化する必要があります。 Let's Encryptを使用してみました。 # apt-get install python-certbot-apache というのでいろいろインストールされた。 いろいろつついてしまった中で、最初はメールアドレスやライセンスの質問があった気がします。 とりあえず全部rootで実行してしまいましたがtomcatかなにかで使えるのかな? 何度か試してみた後… # certbot certonly -d siisise.net How would you like to authenticate with the ACME CA? (認証方法どないする?) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Apache Web Server plugin (apache) (Apacheのプラグイン使う) 2: Spin up a temporary webserver (standalone) (仮の独立Webサーバ立ててサインアップする) 3: Place files in webroot directory (webroot) (webのrootディレクトリにファイル置いて認証する) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3つの選択肢、サーバを止められるなら2、止められないなら3かな とりあえず2と3で試してみた。ワイルドカード証明書はこれとは別でDNSを使うと取れるらしいです。 2の場合はポート80を使っているサーバを止めてから実行するだけ。 # service tomcat9 stop を先に実行しておく 仮のサーバが起動し、ドメイン接続確認後、 /etc/letsencrypt/live/siisise.net/ に各種ファイルを作ってくれました。developer.jpも同じように作成。 3の場合は Plugins selected: Authenticato...

Raspberry PiでTomcat 9とPostgreSQLをぐりぐりする

Raspberry Pi Zero WでJava SE 8が使えるようになったところでApache TomcatやPostgreSQLを使いたいのです。アクセス負荷に耐えられるようmicroSDカードは大容量や高耐久のものにしてみたのでした。 Tomcatは9だった tomcatはパッケージを入れても動くのですが、常時動いてほしいのでaptで取ってくるとどうなるのかというお試し。最新のTomcat 9はJDK 8でも動きます。 # apt-get install tomcat9 で、だいたい入ります。tomcat9-admin も入れてみるといいのでしょうか。 他のパッケージはtomcat9-docs, tomcat9-examples, tomcat9-users とあるようです。 /usr/share/tomcat9 がCATALINA_HOME、/var/lib/tomcat9 がCATALINA_BASE となり、tomcatグループとユーザも作られ、サーバもtomcat権限で動いています。アプリ系のアカウントは基本rootやsudoで作業すればいいのでパスワードを設定してはいけません。 CATALINA_HOMEは基本的に触れません。CATALINA_BASEのconf内をいろいろカスタマイズすることで、いろいろと動いてくれます。/etc/tomcat9 にリンクされています。 初期ポートは8080なので、conf/server.xml でport 80にしたり、複数仮想サーバを作ったりできます。 サービス開始/停止は # service tomcat9 start # service tomcat9 stop でできるようです。どこに設定があるのかよくわからない。 RedHat系で/etc/rc.d/init.d/ にあるようなものは /etc/default/ にあるのかな。 Webはオートデプロイにして、webapps相当のグループをtomcatにして書き込みもできるようにしておくと、管理も楽かもしれませぬ。 PostgreSQLはもう11か Raspberry Pi Zero WとWH、ふたつあるのでTomcatとは別の方にPostgreSQL入れます。 # apt-get install postgresql...

MavenでTomcatにJAX-RSのせるだけ

TomcatにはJava EE 改め Jakarta EEのWeb系の機能しか載っていないので、その他のサービスを利用するにはwarの中に封じ込めてあげるのが楽です。 とりあえずJDK 12 + Apache NetBeans IDE 11.0の場合 Mavenで構築、Tomcatに公開する場合です。 GlassFishのJAX-RSライブラリを使います。 MavenでWebつくる JAX-RS の機能でRESTfulなものを作る Servlet相当のクラスをひとつ作り、タグだけつけます。Applicationというクラスを継承するようです。@ApplicationPath で公開パスを決めます。 package net.siisise.example.rest; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/api") public class RestSetup extends Application { } 次に機能のclassを作ります。 @の機能は推測どおりかと思うので GET /api/menu/hello に公開されます。 package net.siisise.example.rest; @Path("/menu") public class Mmmmm {     @Path("/hello")     @GET     @Produces(MediaType.TEXT_PLAIN)     public String exHelloName() {         return "おはよう";     } } そのまま公開してもTomcatではライブラリ等不足しています。 web.xml の編集。GlassFishサーバの設定をしていると、<dependencies> にjavaee-web-api があるかもしれません。 ...