デプロイ不要?! WildFly でも bootable jar が作れるようになったらしい

ワイが勝手に JavaEE(JakartaEE) 勢のフラッグシップと思い込んでいる WildFly であるが、ちょっと前に 26 がリリースされた。

最近、あまりチェックしていなかったのだが、bootable jar が作成できるようになったらしい。

軽めのドキュメントも公開されていた。

ほんまかいな?とサンプルを試してみる。

HelloWorldEndpoint.java
package org.wildfly.plugins.demo.jaxrs;


import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;


@Path("/hello")
public class HelloWorldEndpoint {
    @GET
    @Produces("text/plain")
    public Response doGet() {
        return Response.ok("Hello from WildFly bootable jar!").build();
    }
}


としたとき、pom.xml を以下のように設定する。

pom.xml(抜粋)

   <artifactId>jaxrs</artifactId>
   (略)
   <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-jar-maven-plugin</artifactId>
                <configuration>
                    <feature-pack-location>wildfly@maven(org.jboss.universe:community-universe)#${version.wildfly}</feature-pack-location>
                    <layers>
                        <layer>jaxrs</layer>
                        <layer>management</layer>
                    </layers>
                    <excluded-layers>
                        <layer>deployment-scanner</layer>
                    </excluded-layers>
                    <plugin-options>
                        <jboss-fork-embedded>${plugin.fork.embedded}</jboss-fork-embedded>
                    </plugin-options>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>package</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
mvn pacakge

でビルド。

完了したら、

java -jar target/jaxrs-bootable.jar

とタイプ。

すると

といういかにも WildFly なロガー情報が流れる。

ブラウザで http:127.0.0.1:8080/hello アクセスすると

とちゃんと表示されました。

wildfly-jar-maven-plugin やるではないですかーw

 

 

Tomcat/Tomee の WAR ファイルのアップロードのサイズ上限

これまで動作確認程度の小さな war を GUI マネージャー経由でデプロイすることがもっぱらだったんだが、もうちょっとエンティティ増やして・・とかやっているうちにファイルが大きくなり、デプロイ時に OK は出るものの管理画面に反映されないようになった。

ログ見たら、ファイルサイズの上限超えていてデプロイできないとかなんとか。

上限解放は

/webapps/manager/WEB-INF/web.xml

<multipart-config>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>

を適当な数値に書き換える。

<multipart-config>
<!– 100MB max –>
<max-file-size>104857600</max-file-size>
<max-request-size>104857600</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>

にしておけば、100 MB 程度まではアップできる。

ただ、これ面白いのは、この数値はあくまで GUI マネージャーを介してのファイルサイズ上限で、同じやつを埋め込みで起動していた時には、まったく問題なく動いていた。

 

初学者向け Java の教科書的なやつ

ネットで読めるもの

JavaDrive
定番サイトでしょう。Java のみならず、PHP や Python なども取り扱ってます。どれもかなり質が高いです。
特に Java 編は人気が高く、ここで掲載されたコードがあちこちで引用・改変されています。

書籍

スッキリわかるJava入門
書籍ではこれが定番。現在は第3版となっています。

 

(適宜更新予定)

TomEE をソースコードからビルド&デプロイする

ビルド

GitHub からソースコードを持ってくる。

maven で管理されているプロジェクトなので、以下のコマンドでクイックビルド。

mvn -Pquick -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install

これが長い(笑)。

ビルドする環境にもよると思うのだが、ワイの環境では余裕の 50 分越えw

成功すれば、tomee -> apache-tomee フォルダ内に target フォルダが生成されているはずだ。

以下の図のように各種 TomEE (フレーバーなどというようだ)ができている。

フレーバー云々に関しては『Tomcat 魔改造 vs TomEE』の TomEE WebProfile, TomEE Plus, TomEE MicroProfile, TomEE Plume を参照してください。

 

デプロイ

各種フレーバーのうち、今回は tomee-plus をチョイス。

zip か tar.gz を解凍。

このフォルダを適当に改名して /usr/local 内に配置。

 

テスト実行

実行ファイルなどのパーミッションを適宜変更。

手を抜くなら

chmod -R u+x tomee

で。

bin フォルダに移動して

./startup.sh

で起動。

ブラウザで http:localhost:8080 にアクセス。

Tomcat でお馴染みの GUI 管理画面が見えていれば OK。

 

ハロワ

何も考えずにハローワールドw

問題ないようです。