SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
WILDFLY SWARM IN PROGRESS
2016-02-13 第十四回 #渋谷java
,@emaggame http://morec.at
目次
WildFly
WIldFly Swarm
基本的な使い方
便利な Fraction
おまけ
http://wildfly.org/
Java EE 7 準拠のアプリケーションサーバ
2016-01-29 10.0.0.Final がリリース
http://wildfly-swarm.io
公式キャッチフレーズ "Rightsize Your Services"
Java EE で uber jar
Spring Boot のようなもの
Fraction という単位で必要な機能のみをもったアプ
リケーションを作成
最新版 1.0.0.Alpha8。ベースは WildFly 10.0.0.Final
基本的な使い方
uberjar(* - s w a r m . j a r ) を作成するプラグイン
<plugin>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>wildfly­swarm­plugin</artifactId>
  <configuration>
    <mainClass>wildflyswarmtour.App</mainClass>
  </configuration>
  <executions>
    <execution>
      <goals><goal>package</goal></goals>
    </execution>
  </executions>
</plugin>
基本的な使い方
好きな API を依存性に追加
<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>jaxrs</artifactId>
</dependency>
基本的な使い方
アプリケーションを書く
普通の JAX-RS を利用したリソースクラス
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/hello")
public class HelloWildFlySwarm {
  @GET
  public String hello() {
    return "Hello, WildFly Swarm!";
  }
}
基本的な使い方
アプリケーションのエンドポイントを作成
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.addPackages(true, App.class.getPackage());
    deployment.addAllDependencies();
    container.start().deploy(deployment);
  }
}
基本的な使い方
あとはパッケージングすれば uber jar のできあがり。
$ mvn clean package && java ­jar target/hello­swarm.jar
19:10:43,529 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final
19:10:43,692 INFO  [org.jboss.as] (MSC service thread 1­6) WFLYSRV0049: Wi
2016­02­11 19:10:44,407 INFO  [org.jboss.as.naming] (ServerService Thread 
[...]
$ curl localhost:8080/hello
Hello, WildFly Swarm!
基本的な使い方
その他に以下の方法でも起動可能
mvn wildfly-swarm:run
IDE から main() メソッド実行
Gradle を使いたい場合は以下を参考に。
https://github.com/wildfly-swarm/wildfly-swarm-
examples/tree/1.0.0.Alpha8/gradle
便利な FRACTION
Netflix OSS
Keycloak
Swagger
...
NETFLIX OSS
https://github.com/Netflix
Microservices の雄、Netflix は様々なライブラリを公開
NETFLIX OSS
WildFly Swarm では Ribbon と Hystrix および依存ライブラ
リがすぐ使える。
<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>ribbon</artifactId>
</dependency>
https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-
guide/content/netflixoss.html
NETFLIX OSS
Ribbon と Hystrix の主な機能
Ribbon: クライアントサイド ロードバランシング
Hystrix: サーキットブレーカ
NETFLIX OSS
Time Service と Event Service の 2 サービスがある例
https://github.com/wildfly-swarm/wildfly-swarm-
examples/tree/1.0.0.Alpha8/ribbon
NETFLIX OSS
Time Service は冗長化(ポート 8081 と 8082)
Event Service は時刻表示に Time Service に依存
NETFLIX OSS
Time Service は 8081 がダウンしても実行可能
NETFLIX OSS
Time Service 両系ダウンすると Event Service は時刻表示
にフォールバック用のレスポンス(次ページ)を利用
NETFLIX OSS
import com.netflix.hystrix.HystrixInvokableInfo;
import com.netflix.ribbon.hystrix.FallbackHandler;
import io.netty.buffer.ByteBuf;
import rx.Observable;
import java.util.Map;
public class TimeFallbackHandler
            implements FallbackHandler<ByteBuf> {
    @Override
    public Observable<ByteBuf> getFallback(
              HystrixInvokableInfo<?> hystrixInfo,
              Map<String, Object> requestProps) {
        String fallback = "{ "h": 12 }";
        return ...
    }
}
KEYCLOAK
http://keycloak.jboss.org/
様々な認証形式に対応した認証・認可サーバ
KEYCLOAK
WildFly Swarm では Keycloak クライアントがリソース制
限を設定する API を用意
deployment.as(Secured.class)
  .protect( "/some­resource" )
    .withMethod( "GET" )
    .withRoles( "admin" );
<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>keycloak</artifactId>
</dependency>
https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-
guide/content/keycloak.html
KEYCLOAK
Keycloak サーバを WildFly Swarm を用いた
uber jar にすることも可能
自分でいろいろ設定したい場合
ビルド済みのものを利用したい場合
https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-
guide/content/keycloak_server.html
https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-
guide/content/servers.html#_keycloak_server
SWAGGER
http://swagger.io/
REST API を定義する仕様を定めるライブラリ
2016-01-01 Open API と改名
SWAGGER
WildFly Swarm では JAX-RS を用いた REST API に対して、
Swagger の定める REST API 仕様の表現である
swagger.json を出力する機能を用意
<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>swagger</artifactId>
</dependency>
https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-
guide/content/swagger.html
http://wildfly-swarm.io/posts/wildfly-swarm-s-got-
swagger/
SWAGGER
現在時刻をレスポンスする API の例
https://github.com/wildfly-swarm/wildfly-swarm-
examples/tree/1.0.0.Alpha8/jaxrs/swagger
SWAGGER
import io.swagger.annotations.*;
@Path("/time")
@Api(value = "/time", description = "Get the time", tags = "time")
public class TimeResource {
  @GET
  @Path("/now")
  @ApiOperation(value = "Get the current time",
    notes = "Returns the time as a string",
    response = String.class
  )
  @Produces(MediaType.APPLICATION_JSON)
  public String get() {
    return String.format("{"value" : "The time is %s"}", ...);
  }
}
$ curl localhost:8080/time/now
{"value" : "The time is 2016­02­13T14:00:00.000+09:00"}
SWAGGER
$ curl localhost:8080/swagger.json
{
  "paths": {
    "/time/now": {
      "get": {
        "responses": { "200": {
            "schema": { "type": "string" },
            "description": "successful operation"
          }
        },
SWAGGER
$ curl localhost:8080/swagger.json
"produces": [
  "application/json"
],
"operationId": "get",
"description": "Returns the time as a string",
"summary": "Get the current time",
"tags": [
  "time"
]
SWAGGER
ドキュメンテーション UI である も WildFly
Swarm で動かせる。
Swagger UI
https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-
guide/content/servers.html#_swagger_ui_server
ビルド済みの jar をダウンロードして実行
$ wget ­­trust­server­names http://bit.ly/swagger­ui­100Alpha8­swarm
$ java ­jar swagger­ui­1.0.0.Alpha8­swarm.jar
SWAGGER
SWAGGER
現在の 1.0.0.Alpha8 の注意点として、
CDI を利用すると実行時エラーになる
AmbiguousResolutionException thrown with swagger
fraction
https://issues.jboss.org/browse/SWARM-271
おまけ
WildFly Swarm を一通り触ってみるブログエントリ
WildFly Swarm 周遊
http://morec.at/blog/2015/12/21/wildfly-swarm-tour
Hello WildFly Swarm
簡単な CRUD アプリ
Arquillian を使った Integration Test
Keycloak による認証
Docker イメージ作成
最後に
WildFly Swarm は Java EE アプリケーションが手軽に作成
できるだけでなく、様々な API のインテグレーションに
も注力しています。
ぜひ触っていただいて応援やコミュニティに参加いただ
くとともに、機能追加やバグ指摘などお願いします。
Community
JIRA
http://wildfly-swarm.io/community/
https://issues.jboss.org/secure/RapidBoard.jspa?
rapidView=2972

Mais conteúdo relacionado

Mais procurados

Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpNorito Agetsuma
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編なべ
 
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerおれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerToshiaki Maki
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側賢 秋穂
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)akira6592
 
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 基本編なべ
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)akira6592
 
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Java女子部
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamerYoshitaka Kawashima
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発Yoshitaka Kawashima
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方akira6592
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Koichi Sakata
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)akira6592
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要kuroiwa
 
show コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudyshow コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudyakira6592
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQLRyusuke Kajiyama
 

Mais procurados (20)

Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
 
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerおれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
 
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
 
Jsug 20160422 slides
Jsug 20160422 slidesJsug 20160422 slides
Jsug 20160422 slides
 
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 基本編
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
 
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
 
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要
 
show コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudyshow コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudy
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 

Semelhante a WildFly Swarm In Progress

商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストYoichiro Sakurai
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)torutk
 
Android4.2徹底解剖!
Android4.2徹底解剖!Android4.2徹底解剖!
Android4.2徹底解剖!leverages_event
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotationEIICHI KIMURA
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service EnvironmentSunao Tomita
 
第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料Kenji Nagase
 
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
 
Iss seminar 2010709#1-upload
Iss seminar 2010709#1-uploadIss seminar 2010709#1-upload
Iss seminar 2010709#1-uploadOpenwave Systems
 
110409 silverlight square_lt_pub
110409 silverlight square_lt_pub110409 silverlight square_lt_pub
110409 silverlight square_lt_pubTakayoshi Tanaka
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)Yoshiharu Hashimoto
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでHideaki Miyake
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 

Semelhante a WildFly Swarm In Progress (20)

商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
 
Android4.2徹底解剖!
Android4.2徹底解剖!Android4.2徹底解剖!
Android4.2徹底解剖!
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 
Heroku java
Heroku javaHeroku java
Heroku java
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment
 
第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料
 
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ユーザー会)
 
Iss seminar 2010709#1-upload
Iss seminar 2010709#1-uploadIss seminar 2010709#1-upload
Iss seminar 2010709#1-upload
 
Hello Java
Hello JavaHello Java
Hello Java
 
JavaFX-with-Adobe
JavaFX-with-AdobeJavaFX-with-Adobe
JavaFX-with-Adobe
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 
110409 silverlight square_lt_pub
110409 silverlight square_lt_pub110409 silverlight square_lt_pub
110409 silverlight square_lt_pub
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 

WildFly Swarm In Progress