SlideShare a Scribd company logo
1 of 31
JAX-RS ハンズオン 第2部
JavaDo #08
環境セットアップ
➤ 教科書のURL
https://goo.gl/ZeHR28
➤ ハンズオン[環境セットアップ]の手順URL
https://goo.gl/m3XIAj
➤ 下の手順ぐらいまで順次進めてください
1. https://github.com/java-do/20170115_seminar にブラウザでアクセスしよう
2. 本ハンズオン用Mavenプロジェクトをダウンロードしよう
1. zipで取り込む方は「Clone or Download」から「Download ZIP」を選択
2. gitで取り込む方は「https://github.com/java-do/20170115_seminar.git」で
3. 本ハンズオンでは1の場合を前提に進めます
3. ダウンロードしたMavenプロジェクトをIDEで読み込もう
4. 起動の確認をしよう
5. Advanced REST client (chromeのplugin)をインストールしよう
前回入れた方は再度インストール不要です
agenda
➤ 環境セットアップ
➤ 前回の復習
➤ 例外ハンドリング
➤ ExceptionMapper
➤ JSONを返す
➤ ファイルアップロード
➤ Multipart版
➤ シンプル版
自己紹介
➤ 上野 春毅
➤ JavaDo運営メンバー
➤ 燃料:コーヒー
➤ 最近、GuiceとSql2oのプログラム書いてます
前回の
復習
RESTとは
➤ Representational State Transfer(REST)
➤ Webのメディアを扱うための概念
➤ HTTPかつJSON(or XML)のインターフェース
➤ WEB-API実装に利用
シングルページアプリケーションなどの
フロントエンドに対するバックエンド側
たとえば下のようなもの
https://goo.gl/ZkmWls
➤ RESTを実装するには、JavaではJAX-RS
JAX-RS
➤ Java API for RESTful Web Services
➤ RESTに基づいたWebサービスをJavaで実装するための(Java EEの)API仕様
➤ 実装はアノテーションベース
➤ とにかくシンプルに開発できる
➤ JAX-RSを実装したライブラリとして、Jerseyを使います
RESTの概念
➤ Webでアクセスできるリソースを操作
➤ Webでアクセスできるとは
➤ HTTPのURI(例:http://hoge.jp/ap/resource)
➤ リソースとは
➤ 例えば、商品、アカウントなど
➤ /ap/product/200
➤ 200番の商品
➤ 操作とは
➤ 取得、登録、変更、削除
➤ GET、POST、PUT、DELETE
➤ これをHTTP通信にすると「GET /ap/resource HTTP/1.1」
➤ 訳すと「アプリケーションのリソースを取得する」(HTTPバージョン1.1のプロトコルに従って)
JAX-RSの実装例
@Path(“/product”) ・・・・・①URI: /ap/product
public class ProductResource {
@GET ・・・・・②GETで
@Produces(MediaType.APPLICATION_JSON) ・・・③JSONで返却
public Product getProduct(){ ・・・④商品を
Product product = new Product();
product.setName(“JavaDo“);
return product;
}
}
復習用にコードを書いてみましょう
➤ jp.javado.jaxrs.resource.SampleResourceにコードを追加しま
しょう
➤ jp.javado.jaxrs.resource_example.SampleResourceを参照
➤ @GET, @POST, @PUT, @DELETE
➤ 書いたらRest Clientを使って動かしてみましょう
REST Clientで叩いてみましょう
http://localhost:8080/rest/api/sample
POST application/json
エラー処理
を作ってみましょう
エラー処理の方法 その1(前回)
➤ 処理の中でそのままエラー処理を書く
@PUT
@Path("{id}")
@Consumes(MediaType.APPLICATION_JSON)
public Response putProducts(@PathParam("id") int id, Product product) {
IDAOMock dao = DAOMock.getInstance();
try {
dao.update(id, product);
return Response.ok().build();
} catch (Exception e) {
e.printStackTrace();
int status = 400;
return Response.status(status).build();
}
}
HTTP ステータスコード:400 (Bad Request)を返却
エラー処理の方法 その2 (前回)
➤ WebApplicationExceptionクラスをスローする
@PUT
@Path("{id}")
@Consumes(MediaType.APPLICATION_JSON)
public Response putProducts(@PathParam("id") int id, Product product) {
IDAOMock dao = DAOMock.getInstance();
try {
dao.update(id, product);
return Response.ok().build();
} catch (Exception e) {
e.printStackTrace();
throw new WebApplicationException(400);
}
}
エラー処理の方法 その3(前回)
➤ ExceptionMapperを使う場合
@PUT
@Path("{id}")
@Consumes(MediaType.APPLICATION_JSON)
public Response putProducts(@PathParam("id") int id, Product product) {
IDAOMock dao = DAOMock.getInstance();
try {
dao.update(id, product);
return Response.ok().build();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
この場合、HogeExceptionをスローする
エラー処理の方法 その3(今回)
➤ ExceptionMapperの作り方
➤ このクラスを書いてみましょう
@Provider
public class RuntimeExceptionMapper implements ExceptionMapper<RuntimeException> {
@Override
public Response toResponse(RuntimeException e) {
System.out.println(“RuntimeExceptionMapper execute");
e.printStackTrace();
return Response.status(Response.Status.SERVICE_UNAVAILABLE).build();
}
}
ExceptionMapper<RuntimeException>と書くと、
RuntimeExceptionが発生した場合の処理を作ることができる
ジェネリクスで指定するExceptionクラスはなんでも良い
エラー処理の方法 その3(今回)
import jp.javado.db.ProductDatabase;
import jp.javado.jaxrs.pojo.Product;
/* 省略 */
@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Product get(@PathParam("id") int id) throws RestException {
Product product = ProductDatabase.select(id);
return product;
}
jp.javado.jaxrs.resource.ProductResourceを新規作成し、以下の内容を記述
エラー処理の方法 その3(今回)
➤ ProductResourceのgetメソッド内でRuntimeExceptionをスローしてみ
ましょう
➤ まずは簡単に以下で
➤ 書けた方は、REST Clientでアクセスしてみましょう
➤ 下部のStatusが503 Service Unavailable と出る
➤ Response.Status.SERVICE_UNAVAILABLEを指定しているため
➤ Response.Status.INTERNAL_SERVER_ERRORとかに変えて
試してみましょう
if (true) throw new RuntimeException();
独自定義のExceptionをハンドリング
➤ アプリケーションで定義したExceptionクラスをハンドリング
する方法についてです
➤ 本ハンズオン用に以下のExceptionを用意しました
➤ RestException
➤ RestRuntimeException
独自定義Exceptionをハンドリング
➤ 以下を書いてみましょう
➤ RestExceptionMapperを書いてみましょう
➤ RestRuntimeExceptionMapperを書いてみましょう
➤ 場所:jp.javado.jaxrs.exceptionパッケージに*Mapperを作成
➤ 今回は以下のクラスを用意しています
➤ ErrorCaseはエラーの内容を表すクラス
➤ ErrorMessageクラスはクライアントに返却するJson用クラス
独自定義Exceptionをハンドリング
➤ 以下を書いてみましょう
➤ RestExceptionをProductResourceに書いてみましょう
➤ jp.javado.jaxrs.resourceexample.ExampleProductResource#get(
)を見て修正
➤ RestRuntimeExceptionをProductResourceに書いてみましょう
➤ 上記をRestExceptionをRestRuntimeExceptionに変更してみる
➤ 場所:jp.javado.jaxrs.resourceパッケージのProductResourceを加
筆
独自定義Exceptionをハンドリング
➤ Rest Clientを使って動かしてみましょう
➤ アクセス方法は今までと同じ
ファイル
アップロード
ファイルアップロード
➤ HTTP通信のリクエストボディにファイルデータを載せてくる
➤ 代表例:multipart/form-data
<form action="ファイル処理URI"
method="post" enctype="multipart/form-data">
...
氏名 :<input type="text" name="username" />
送信ファイル:<input type="file" name="submitfile" />
...
</form>
ファイルアップロードを書いてみましょう
➤ jp.javado.jaxrs.resourcesample.ExampleProductResource#fileupload()
➤ jp.javado.jaxrs.resourcesample.ExampleProductResourceのフィールド
➤ 上記を書き写してみましょう
ファイルアップロードをしてみましょう
➤ Rest Clientでファイルアップロードの方法
➤ http://localhost:8080/rest/api/product/fileupload/multipart
➤ POST
➤ multipart/form-data
➤ [Files]を押す
➤ [ADD ANOTHER FILE]を押す
➤ [CHOOSE FILES]を押してファイルを選択
➤ fileUploadと書いてあるところはそのまま
➤ [SEND]を押す
➤ 「Staus: 201 Created」が出たらOK、FILE_SAVE_PATHにファイルを確認
ファイルアップロードの仕組み
➤ HTTP通信で以下のリクエストが来る(通信内容全文)
POST /rest/api/product/fileupload/multipart HTTP/1.1
HOST: localhost:8080
content-type: multipart/form-data;
boundary=----WebKitFormBoundary4XSJradEgR8nMn8B
content-length: 914
------WebKitFormBoundary4XSJradEgR8nMn8B
Content-Disposition: form-data; name="fileUpload"; filename="sample1.jpeg"
Content-Type: image/jpg
[jpegデータの中身]
------WebKitFormBoundary4XSJradEgR8nMn8B--
ファイルアップロードの仕組み
➤ プログラムとの対応
POST /rest/api/product/fileupload/multipart HTTP/1.1
HOST: localhost:8080
content-type: multipart/form-data;
boundary=----WebKitFormBoundary4XSJradEgR8nMn8B
content-length: 914
------WebKitFormBoundary4XSJradEgR8nMn8B
Content-Disposition: form-data; name="fileUpload"; filename="sample1.jpeg"
Content-Type: image/jpg
[jpegデータの中身]
------WebKitFormBoundary4XSJradEgR8nMn8B--
@Consumes(MediaType.MULTIPART_FORM_DATA)
@FormDataParam("fileUpload") InputStream
@FormDataParam("fileUpload") FormDataContentDisposition
@FormDataParam("fileUpload") FormDataBodyPart
Google Drive APIで提供されているファイルアップ
ロード
➤ 参照URLは以下
➤ https://developers.google.com/drive/v2/reference/files/insert
➤ 「google drive api insert」でググって一番上に出てくるのでもい
けます
Media - Simple Uploadの仕様をコードで書いてみま
しょう
➤ ついでにファイル名(独自拡張)も受け取れるようにしてみましょう
➤ 以下を書きうつしてください
➤ jp.javado.jaxrs.resourceexample.ExmpleProductResource#fileuploadSimple
➤ 注釈(念のため!)
➤ リクエストのAPI仕様を受け取ることはできる
➤ レスポンス及び内部処理は仕様とは異なる
➤ 認証ヘッダとかガン無視
ファイルアップロードをしてみましょう

More Related Content

What's hot

SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsugSpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsugToshiaki Maki
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能Spring Security 4.1 の新機能
Spring Security 4.1 の新機能正和 井岡
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugToshiaki Maki
 
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょJavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょKohki Nakashima
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradlekimukou_26 Kimukou
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようずOda Shinsuke
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security土岐 孝平
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugYoshimasa Tanabe
 
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FASTA HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FASTKenichi Tachibana
 
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceSpring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceWataruOhno
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線MeetupMasatoshi Tada
 
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装miso- soup3
 

What's hot (20)

SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsugSpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
 
Heroku java
Heroku javaHeroku java
Heroku java
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能Spring Security 4.1 の新機能
Spring Security 4.1 の新機能
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
 
JavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょJavaScriptでWebDriverのテストコードを書きましょ
JavaScriptでWebDriverのテストコードを書きましょ
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
WildFly Swarm In Progress
WildFly Swarm In ProgressWildFly Swarm In Progress
WildFly Swarm In Progress
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
 
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FASTA HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
 
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceSpring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
 
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
Hokuriku.NET ASP.NET MVC 入門 2 回目 1.編集機能を実装
 

Viewers also liked

はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyotoHisateru Tanaka
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてHirata Tomoko
 
git gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけgit gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけDaisuke Kasuya
 
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFDサラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFDKazuhito Miura
 
SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料bleis tift
 
ゆかりん時計の話
ゆかりん時計の話ゆかりん時計の話
ゆかりん時計の話MakTak
 
140611だいたいわかるGit
140611だいたいわかるGit140611だいたいわかるGit
140611だいたいわかるGitMasashi Tsuru
 
Git 入門
Git 入門Git 入門
Git 入門y-uti
 
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!Toshio Ehara
 
カラーマネジメント入門
カラーマネジメント入門カラーマネジメント入門
カラーマネジメント入門mdome
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回kinme modoki
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013DQNEO
 
UnityでVRアプリを作ってみよう! (ハンズオン編)
UnityでVRアプリを作ってみよう! (ハンズオン編)UnityでVRアプリを作ってみよう! (ハンズオン編)
UnityでVRアプリを作ってみよう! (ハンズオン編)Masahiro Ide
 
測って図る:データ駆動型サービス工学の実践
測って図る:データ駆動型サービス工学の実践測って図る:データ駆動型サービス工学の実践
測って図る:データ駆動型サービス工学の実践Kurata Takeshi
 
Chainerライブコーディング
ChainerライブコーディングChainerライブコーディング
Chainerライブコーディングm3 329
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南Kouji Matsui
 

Viewers also liked (20)

Terraforming
TerraformingTerraforming
Terraforming
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
 
git gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけgit gitにされたオレの屍を超えていけ
git gitにされたオレの屍を超えていけ
 
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFDサラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
サラリーマンでギョーミーなプログラマ(つまりオレ)でも片手間で作れるXFD
 
SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料SCMBC Git入門セッション発表資料
SCMBC Git入門セッション発表資料
 
Wagby on Cloud Foundry
Wagby on Cloud FoundryWagby on Cloud Foundry
Wagby on Cloud Foundry
 
ゆかりん時計の話
ゆかりん時計の話ゆかりん時計の話
ゆかりん時計の話
 
140611だいたいわかるGit
140611だいたいわかるGit140611だいたいわかるGit
140611だいたいわかるGit
 
Git 入門
Git 入門Git 入門
Git 入門
 
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
カラーマネジメント入門
カラーマネジメント入門カラーマネジメント入門
カラーマネジメント入門
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
UnityでVRアプリを作ってみよう! (ハンズオン編)
UnityでVRアプリを作ってみよう! (ハンズオン編)UnityでVRアプリを作ってみよう! (ハンズオン編)
UnityでVRアプリを作ってみよう! (ハンズオン編)
 
測って図る:データ駆動型サービス工学の実践
測って図る:データ駆動型サービス工学の実践測って図る:データ駆動型サービス工学の実践
測って図る:データ駆動型サービス工学の実践
 
Chainerライブコーディング
ChainerライブコーディングChainerライブコーディング
Chainerライブコーディング
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 

Similar to [JavaDo] JAX-RS ハンズオン 第2部

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929hiro345
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_GebNobuhiro Sue
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門guestd4898b
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3Tomoyuki Sato
 
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)JPCERT Coordination Center
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話KLab Inc. / Tech
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackkimukou_26 Kimukou
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイtoyoshi
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorialKazuaki Ueda
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 

Similar to [JavaDo] JAX-RS ハンズオン 第2部 (20)

React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3
 
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
Visual studio de debug
Visual studio de debugVisual studio de debug
Visual studio de debug
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 
Capistranoで自動デプロイ
Capistranoで自動デプロイCapistranoで自動デプロイ
Capistranoで自動デプロイ
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorial
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 

Recently uploaded

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 

Recently uploaded (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

[JavaDo] JAX-RS ハンズオン 第2部