SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Introduction to WildFly Swarm
2015-08-10(月) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」
http://www.java-users.jp/?p=1993
田邊 義真(たなべ よしまさ)
@emaggame
http://morec.at
2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 2
Java EE で
Spring Boot みたいなの
やりたい
2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 3
選択肢
●
Spring Boot + Java EE API
●
Payara Micro
●
WildFly Swarm
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
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
2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 6
WildFly で
Spring Boot みたいなの
やりたい...
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
2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 8
WildFly Swarm を動かすまで
●
Spring Boot のよさ
– Spring Boot の依存性を 1 つ追加するだけで、必要な
ライブラリの依存性から設定までを よきにやってくれ、す
ぐにアプリケーション作成に着手、 fat-jar で即実行でき
る。 カスタマイズは JavaConfig や 設定ファイル で。
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
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
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!";
}
}
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);
}
}
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: ...
...
2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 14
WildFly Swarm を動かすまで
●
アプリケーション実行 その2
– mvn wildfly-swarm:run
– gradle run
2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 15
WildFly Swarm を動かすまで
●
アプリケーション実行 その3
– IDE > Run
●
IDE から main() 指定で実行できる
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
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 も動かない
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

Mais conteúdo relacionado

Mais procurados

20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側賢 秋穂
 
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerおれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerToshiaki Maki
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)akira6592
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編なべ
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12Ryuji Yamashita
 
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Java女子部
 
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~JustSystems Corporation
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamerYoshitaka Kawashima
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編なべ
 
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjugJustSystems Corporation
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発Yoshitaka Kawashima
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術Y Watanabe
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQLRyusuke Kajiyama
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)akira6592
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方akira6592
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)akira6592
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotationEIICHI KIMURA
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Takahiro YAMADA
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催) ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催) akira6592
 

Mais procurados (20)

20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
 
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerおれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
 
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
 
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
 
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催) ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
 

Destaque

Ant「ビルドできません」Travis「よし通れ」
Ant「ビルドできません」Travis「よし通れ」Ant「ビルドできません」Travis「よし通れ」
Ant「ビルドできません」Travis「よし通れ」Minoru Sakamoto
 
Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話cocoa_dahlia
 
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugExcel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugYusuke Yamamoto
 
擬似乱数生成器の評価
擬似乱数生成器の評価擬似乱数生成器の評価
擬似乱数生成器の評価Taku Miyakawa
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugYuji Kubota
 
Future of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigFuture of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigWEBtlak
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Charles Moulliard
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservicesjclingan
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmComsysto Reply GmbH
 
Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterRed Hat Developers
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftandreas kuncoro
 
What's New in Java 8
What's New in Java 8What's New in Java 8
What's New in Java 8javafxpert
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersClaus Ibsen
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 

Destaque (16)

Ant「ビルドできません」Travis「よし通れ」
Ant「ビルドできません」Travis「よし通れ」Ant「ビルドできません」Travis「よし通れ」
Ant「ビルドできません」Travis「よし通れ」
 
JJUG 2015 Summer
JJUG 2015 SummerJJUG 2015 Summer
JJUG 2015 Summer
 
Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話
 
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjugExcel方眼紙アプリケーションサーバと侍の新機能 #jjug
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
 
擬似乱数生成器の評価
擬似乱数生成器の評価擬似乱数生成器の評価
擬似乱数生成器の評価
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
 
Future of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigFuture of Microservices - Jakub Hadvig
Future of Microservices - Jakub Hadvig
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
 
Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirter
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshift
 
What's New in Java 8
What's New in Java 8What's New in Java 8
What's New in Java 8
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 

Semelhante a Introduction to WildFly Swarm #jjug

Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1Yasuaki Matsuda
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Takashi Someda
 
JAWS-UG新支部やリブート支部情報2015年11月
JAWS-UG新支部やリブート支部情報2015年11月JAWS-UG新支部やリブート支部情報2015年11月
JAWS-UG新支部やリブート支部情報2015年11月Yuka Aoki
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようMidori Oge
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具Sho Ito
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_GebNobuhiro Sue
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成Tomoki Oyamatsu
 
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...Sadao Tokuyama
 
ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視Kodai Terashima
 
ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2Midori Oge
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Chihiro Ito
 
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!Yuichi Sakuraba
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Logico
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)a know
 
Jvm internal
Jvm internalJvm internal
Jvm internalGo Tanaka
 

Semelhante a Introduction to WildFly Swarm #jjug (20)

Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
Backlog、Cacoo にみるAWS運用の勘所 - JAWS UG 三都物語
 
JAWS-UG新支部やリブート支部情報2015年11月
JAWS-UG新支部やリブート支部情報2015年11月JAWS-UG新支部やリブート支部情報2015年11月
JAWS-UG新支部やリブート支部情報2015年11月
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
 
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都  Flex & Google App Engine for Java & ...
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
 
TruffleSqueakの紹介
TruffleSqueakの紹介TruffleSqueakの紹介
TruffleSqueakの紹介
 
ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視
 
ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発
 
いまさら触るAwt
いまさら触るAwtいまさら触るAwt
いまさら触るAwt
 
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
 
Jvm internal
Jvm internalJvm internal
Jvm internal
 

Introduction to WildFly Swarm #jjug

  • 1. Introduction to WildFly Swarm 2015-08-10(月) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 http://www.java-users.jp/?p=1993 田邊 義真(たなべ よしまさ) @emaggame http://morec.at
  • 2. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 2 Java EE で Spring Boot みたいなの やりたい
  • 3. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 3 選択肢 ● Spring Boot + Java EE API ● Payara Micro ● WildFly Swarm
  • 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
  • 6. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 6 WildFly で Spring Boot みたいなの やりたい...
  • 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: ... ...
  • 14. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 14 WildFly Swarm を動かすまで ● アプリケーション実行 その2 – mvn wildfly-swarm:run – gradle run
  • 15. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 15 WildFly Swarm を動かすまで ● アプリケーション実行 その3 – IDE > Run ● IDE から main() 指定で実行できる
  • 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