• 検索結果がありません。

[HO-2] NetBeansとGlassFishではじめるJava EE7ハンズオン

N/A
N/A
Protected

Academic year: 2021

シェア "[HO-2] NetBeansとGlassFishではじめるJava EE7ハンズオン"

Copied!
22
0
0

読み込み中.... (全文を見る)

全文

(1)

Java EE 7

ハンズオン 概要

日本オラクル株式会社

Oracle University

野邊 哲男

Java Day Tokyo 2016

(2)

Safe Harbor Statement

The following is intended to outline our general product direction. It is intended for

information purposes only, and may not be incorporated into any contract. It is not a

commitment to deliver any material, code, or functionality, and should not be relied upon

in making purchasing decisions. The development, release, and timing of any features or

functionality described for Oracle’s products remains at the sole discretion of Oracle.

(3)

アジェンダ

Java EE 7

概要

Java EE 7

ハンズオンの概要

[

参考] Oracle University Java EE 7関連コースのご紹介

1

2

3

(4)
(5)

Java EE 7

概要

Java Platform, Enterprise Edition

(Java EE)とは

企業向けの多層アプリケーション(Webなど)を開発/動作させるためのフレームワーク/技術仕

様群

Java Community Process(JCP)

で策定

Java EE 7

は、Java EE6をベースに3つのテーマを掲げ、機能拡張や新機能を提供。

開発生産性のさらなる向上、

HTML5

対応、

エンタープライズニーズへの対応

Java EE 7

で追加された4つの新しい技術

Java API for WebSocket

Batch Applications for the Java Platform

(jBatch)

Java API for JSON Processing

(6)

Java EE 7

の各仕様と当ハンズオンで主に使用するもの

JSP 2.2

JSF 2.2

EL 3.0

Java API for JSON

1.0

Interceptors 1.1

CDI 1.1

EJB 3.2

JAX-RS 2.0

WebSocket 1.0

Java API for

JPA 2.1

JTA 1.2

Annotations 1.1

Common

JMS 2.0

Batch Applications

1.0

Bean Validation

1.1

Connector 1.7

Servlet 3.1

Portable

Extensions

Concurrency

Utilities 1.0

アップデート

新機能

メジャー・リリース

ハンズオン

ハンズオン

ハンズオン

ハンズオン

ハンズオン

ハンズオン

(7)

Java API for WebSocket (JSR-356)

Java

でWebSocket通信を行うアプ

リケーションを開発するための

標準API

WebSocket

では、クライアントと

サーバ間でハンドシェイクを確

立後、特定のエンドポイントを

基点に、双方向かつ非同期的に

データを送受信

Server

Client

HTTP

Tim

e

upgrade

open

receive

receive

Handshake Request

Handshake Response

WebSocket Connection

send

send

receive

send

send

receive

send

receive

payload

payload

payload

payload

payload

(8)

Java API for WebSocket

下図は、Java API for WebSocketの簡単なサンプルであるEchoアプリケーションのイ

メージ

import

javax.websocket.OnMessage

;

import

javax.websocket.server.ServerEndpoint

;

@ServerEndpoint("/echo")

public class EchoEndpoint {

@OnMessage

public String echo(String message) {

return message;

}

}

ws://host:port/websocket-echo/

echo

サーバ側のエンドポイント

クライアント

エンドポイントをベースに

WebSocket通信

Hello WebSocket!

Hello WebSocket!

メッセージ着信時に

OnMessageハンドラ実行

その他のハンドラとして、接続オープン時に

OnOpen、接続クローズ時にOnClose、エラー発

生時に

OnErrorを実装可能

(9)

Java Message Service 2.0 (JSR 343)

Java Message Service (JMS)

は、Javaでメッセージの送受信を行うための技術仕様

Pointo-To-Point (1

対1)での送受信

Publish-Subscribe (1

対多)での送受信

JMS 2.0

では、下記の機能を拡張

Simplified API

配信遅延

非同期送信

リソース定義の簡素化

Java

App

Java

App

Point-To-Point

Queue

Java

App

Java

App

Publish-Subscribe

Topic

Java

App

(10)

Java Message Service 2.0 (JSR 343) Simplified API

JMS

のConnectionとSessionを統合した新しいJMSContextやCDIにより、メッセージの送受信処理を

簡潔な構文で実現可能

Context messaging = null;

ConnectionFactory connectionFactory = null;

Queue queue = null;

Connection connection = null;

Session session = null;

MessageProducer sender = null;

try {

messaging = new InitialContext();

connectionFactory = (ConnectionFactory) messaging.lookup("myCF");

queue = (Queue) messaging.lookup("myQ");

connection = connectionFactory.createConnection();

session = connection.createSession(Session.AUTO_ACKNOWLEDGE);

sender = session.createProducer(queue);

TextMessage message = session.createTextMessage();

message.setText(“Hello”;

sender.send(message);

} catch (Exception ex) {

ex.printStackTrace();

} finally {

try {

sender.close();

session.close();

connection.close();

} catch (Exception ex) {

}

}

@Inject

@JMSConnectionFactory("myCF")

JMSContext context;

@Resource(mappedName = "myQ")

Queue queue;

…..

try {

context.createProducer().send(queue, “Hello”);

} catch (Exception ex) {

ex.printStackTrace();

}

(11)

Batch Application for the Java Platform (JSR 352)

通称 jBatchと呼ばれるバッチ処理をJavaで実装するための技術仕様

「JOB」や「STEP」などを構成してバッチ処理フローを定義

jBatchの主要構成要素

JOB

バッチ処理の単位。

複数のステップで構成

STEP

バッチ処理の実装単位

JobOperator

JOBの実行や再実行の制御

JobRepository

JOBの実行状態や結果の格納

STEP -A

JOB

STEP -B

STEP -W

STEP -X

STEP -Y

STEP -Z

(12)

jBatch

の構成要素とステップの実装

JOB

の構成は、XMLファイルで記述

STEP

は、チャンク式またはバッチレット式でJavaクラスとして実装(次のスライ

ド)

JOB

Step 1

Step 2

Step 3

ItemReader

ItemProcessor

ItemWriter

ItemReader

ItemProcessor

ItemWriter

Batchlet

JobOperator

Job Repository

(13)

jBatch

のステップの実装と実行イメージ

ItemReader…

データを読込む処理を実装するクラス

ItemProcessor…ItemReader

で読込んだデータに対する処理を実装するクラス

ItemWriter…

処理済のデータを書込み、コミットする処理を実装するクラス:チェックポイント毎

に実行

Batchlet…

任意の処理を実装。1つのStepに1つの実装クラス

ItemReader

ItemProcessor

ItemWriter

STEP

チェックポイント

毎にデータの

書込み

チャンク式

ステップの

実行開始

チャンク式

ステップの

実行終了

データを読込み

データを処理

(14)
(15)

3

章 JavaServer FacesとCDI

ブラウザからメッセージを入力して標準出力

IndexPageMgdBean

index.xhtml

CDI管理Bean

こんにちは

NetBeans のGlassFish Serverの出力タブ)

標準出力

Send Message

ボタン選択

(16)

4

章 Java Message ServiceとEJB (Message Driven Bean)

ブラウザからメッセージを入力してJMSトピック経由で標準出力

IndexPageMgdBean

index.xhtml

CDI管理Bean

こんにちは

NetBeans のGlassFish Serverの出力タブ)

標準出力

Send Message

ボタン選択

出力

MessageListenerMDBImpl

JMS トピック

jms/inforegtopic

Message

DrivenBean

(17)

5

章 WebSocketとEJB(Singleton Session Bean)

ブラウザからメッセージを入力してJMSトピック経由で同じWebSocketセッショ

ンを持つくクライアントに送信

IndexPageMgdBean

index.xhtml

Send Message

ボタン選択

MessageListenerMDBImpl

JMS トピック

jms/inforegtopic

DrivenBean

Message

ClientManageSinglEJB

(18)

6

章 jBatch

ファイルtest_in.txtを読み込み、文字列を大文字に変換し、test_out.txtに出力する。また。

test_out.txt

のファイルサイズを標準出力に出力する。

Job:simplejob

Step:

mychunk

Step:

mytask

MyReader

MyProcessor

MyWriter

MyBatchlet

Servlet:

JobStartServlet

ファイルから文字列を

1行読込む

読み込んだ文字列を大文字に変換

変換した文字列を別ファイルに書込む

mychunkステップで作成された

ファイルのサイズを出力する

JobOperatorを

使用して

Job開始

javaee7

netbeans

JAVAEE7

NETBEANS

test_in.txt

test_out.txt

(19)
(20)

Java EE 7

関連の主な研修コース

下表はJava EE 7 関連の主要なコースです。

http://education.oracle.com

から右図のように「javaee7」の

キーワードでコース検索すると詳細を参照できます。

コース

概要

Java EE 7: 新機能

(2日間)

このコースでは、

Java EE 7 の新機能について説明します。Java

EE 6 を使用していて Java EE 7 への移行を検討しているJava エン

ジニアに最適なコースです。

Java EE 7: Web アプリケーション 開発

(5日間)

このコースでは、

Java Platform, Enterprise Edition 7 Webプロファ

イルに準拠したエンタープライズ・アプリケーションの作成および

デプロイについて学習します。このコースでは、

Session Bean

(EJB-Lite)、JPA、Servlet/JSP、CDI、JAX-RS RESTful Webサービス、

Java API for WebSocketsなどの主要な Java EE 7 テクノロジについ

て説明します。

(21)
(22)

参照

関連したドキュメント

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

8) 7)で求めた1人当たりの情報関連機器リース・レンタル料に、「平成7年産業連関表」の産業別常

この問題をふまえ、インド政府は、以下に定める表に記載のように、29 の連邦労働法をまとめて四つ の連邦法、具体的には、①2020 年労使関係法(Industrial

Heat Mass Transfer, Vol.23 1996 ©Tokyo Electric Power Company Holdings, Inc.. All

有利な公判と正式起訴状通りの有罪評決率の低さという一見して矛盾する特徴はどのように関連するのだろうか︒公

は,医師による生命に対する犯罪が問題である。医師の職責から派生する このような関係は,それ自体としては

□ ゼミに関することですが、ゼ ミシンポの説明ではプレゼ ンの練習を主にするとのこ とで、教授もプレゼンの練習

海洋のガバナンスに関する国際的な枠組を規定する国連海洋法条約の下で、