Contenu connexe Similaire à Introduction to WildFly Swarm #jjug (20) Introduction to WildFly Swarm #jjug1. Introduction to WildFly Swarm
2015-08-10(月) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」
http://www.java-users.jp/?p=1993
田邊 義真(たなべ よしまさ)
@emaggame
http://morec.at
4. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 4
Spring Boot + Java EE API
●
Spring は Java EE の API もいろいろサポート
– JAX-RS, JSR-330 の DI アノテーション, JTA, JMS …
●
API だけでも使い慣れたものにしたい、ということであれば
いいかも
●
参考
– [翻訳] Spring Boot 1.2における"Bootiful" なJava EEサポート
●
https://blog.ik.am/#/entries/296
5. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 5
Payara Micro
●
Payara は GlassFish から fork されたアプリケーションサーバ
●
fat-jar ではなく、 以下のように実行
– java -jar payara-micro.jar --deploy test.war
– payara-micro.jar を用意すればふつうの war がすぐ動く!
●
参考
– Payara Micro を試してみる
●
http://www.coppermine.jp/docs/programming/2015/04/pay
ara-micro.html
7. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 7
WildFly Swarm
●
WildFly Swarm は WildFly の実験的サブプロジェクト
– WildFly = JBoss Application Server が改名
●
WildFly が動作するためのもろもろのライブラリをかき集めて、Java
EE アプリケーションを fat-jar として実行できるようにしたもの
●
ドキュメントサイト(いずれ gitbooks.io などに変わるかも )
– http://wildfly.org/swarm/
●
GItHub
– https://github.com/wildfly-swarm/wildfly-swarm
8. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 8
WildFly Swarm を動かすまで
●
Spring Boot のよさ
– Spring Boot の依存性を 1 つ追加するだけで、必要な
ライブラリの依存性から設定までを よきにやってくれ、す
ぐにアプリケーション作成に着手、 fat-jar で即実行でき
る。 カスタマイズは JavaConfig や 設定ファイル で。
9. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 9
WildFly Swarm を動かすまで
●
WildFly Swarm では?
– Maven プラグインと、使いたい API の依存性を追加
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>wildfly-swarm-jaxrs</artifactId>
<version>${version.wildfly-swarm}</version>
</dependency>
<plugin>
<groupId>org.wildfly.swarm</groupId>
<artifactId>wildfly-swarm-plugin</artifactId>
<version>${version.wildfly-swarm}</version>
<configuration>
<mainClass>foo.App</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
JAX-RS
10. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 10
WildFly Swarm を動かすまで
●
WildFly Swarm では?
– Gradle プラグインと、使いたい APIの依存性を追加
buildscript {
dependencies {
classpath "org.wildfly.swarm:wildfly-swarm-plugin:$version"
}
}
apply plugin: 'wildfly-swarm'
apply plugin: 'application'
mainClassName = 'org.wildfly.swarm.examples.gradle.Main'
dependencies {
compile "org.wildfly.swarm:wildfly-swarm-jaxrs:$version"
}
公式サンプルは以下
http://bit.ly/1N0LIIu
11. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 11
WildFly Swarm を動かすまで
●
WildFly Swarm では?
– ふつうの JAX-RS
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/")
public class Hello {
@GET
public String get() {
return "Hello, WildFly Swarm!";
}
}
12. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 12
WildFly Swarm を動かすまで
●
WildFly Swarm では?
– main() でクラスを登録、必要であれば設定(データソースとか)
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.wildfly.swarm.container.Container;
import org.wildfly.swarm.jaxrs.JAXRSArchive;
public class App {
public static void main(String[] args) throws Exception {
Container container = new Container();
JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class);
deployment.addClass(Hello.class);
deployment.addAllDependencies();
container.start().deploy(deployment);
}
}
13. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 13
WildFly Swarm を動かすまで
●
アプリケーション実行 その1
– java -jar app-swarm.jar
●
mvn package/gradle build すると <app-name>-
swarm.jar という fat-jar ができる
$ java -jar app-swarm.jar
<date> INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
<date> INFO [org.jboss.as] (MSC service thread 1-8) WFLYSRV0049: ...
...
16. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 16
WildFly Swarm 現状
●
Java EE API として JAX-RS, CDI, EJB, JSF, JPA,
JMS など、おおよその Java EE API が利用可
●
Netflix や Logstash、 Keycloak(SSOサーバ)など
がすぐ利用できるインテグレーションもあり
●
ドキュメントはあまりないが、サンプルを見ればなん
とかなる
– https://github.com/wildfly-swarm/wildfly-swarm-
examples
17. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 17
WildFly Swarm 現状
●
まだ Alpha。 プロダクション環境には非推奨
●
WildFly 本体の設定群に追従する仕組みがな
く、WildFly の設定(データソースなど)を全ては使え
ない。ただし、なんとかしようとする動きはあり
●
https://github.com/wildfly-swarm/wildfly-swarm/issues/98
●
Spring Loaded/Auto restart Class Loader 相当
の機能がなく、JRebel も動かない
18. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 18
最後に
●
ぜひ WildFly Swarm を触ってみてください! WildFly 好きには目が離せない
プロジェクトです
●
何やらマイクロサービスっぽいそこそこの規模のサンプルも作成中のようです
– https://github.com/wildfly-swarm/booker
●
APサーバで動いて WF-Swarm で動かない場合は WF-Swarm が対応してい
ないだけなので、 issue 登録を!
●
気に入った方は GitHub のウォッチや公式 Twitter アカウントのフォローな
ど...
– https://twitter.com/wildflyswarm