SlideShare una empresa de Scribd logo
1 de 25
JSF アプリ作ったった 
~EE サーバー載せかえ祭り~ 
2014/08/23 関西WildFly 8(旧JBoss AS)勉強会 
@shinsukeoda
自己紹介 
• 織田信亮@shinsukeoda 
• 大阪で開発者やってます 
• http://odashinsuke.hatenablog.com 
• SQLWorld http://sqlworld.org/ 
Micorsoft MVP for SQL 
Server 
2012/10~2014/09
アジェンダ 
• なぜJSF なのか 
• GlassFish 4.0 に載せる 
• WildFly 8.0.0 に載せ替え 
• WildFly 8.1.0 に載せ替え 
• おまけ(JDBC Driver for SQL Server)
なぜJSF なのか
RDB を使うシンプルなWeb アプリ 
• Struts やSeasar からの脱却 
• 今後Java8 対応の新機能とか入らなさそうだし… 
• Spring/Grails/Play/Java EE どれにしようか 
• でかいORM はあんまり好きくない 
• JPA/.NET Entity Framework 等々 
• 諸々の事情で言語はJava (Xtend)が都合よさげ 
• どうせなら標準のが良くね?
選ばれたのはJava EE でした
JavaEE 使うとして何で作る? 
• 一般的なギョームアプリを作るときに… 
• Pure Servlet + JSP 
• JavaEE 感が無い 
• JAX-RS + テンプレートエンジン 
• 標準っぽくない(偏見?) 
• JSF 
• そのままで使えそう
使ったやつら 
• JSF + PrimeFaces4.0 => PrimeFaces5.0 
• CDI 
• Bean Validation (JSF のValidation では使わない) 
• JTA (JPA は無し) 
• Doma1 => Doma2 
• Java7 + Xtend => Java8
使ったやつら 
• トランザクションは、リクエスト単位では無くメソッド単位 
• @Transactional 使いたかった=> JTA 
• FlowScoped(Faces Flows) は微妙 
• 要件に合わなかった 
• JSF のValidation にBean Validation はまだ早い感 
• Default Group しか対応してない(OmniFaces つかったらいける?) 
• JSF のValidation は使わずにCDI のinterceptor でUI にエラー 
通知
GlassFish 4.0 に載せる
当時EE7 サーバーがGlassFish 4.0 しか無かった 
• JTA の@Transactional が上手く動かない 
• JPA 使った場合は、上手く動いたので何か設定ファイル等の問題? 
• XADataSource が上手く取れてなかった? 
• CDI のinterceptor を使ったDoma のLocal Transaction で対 
応 
• Local Transaction を使いたい箇所と使いたくない箇所が混在 
• xmlns:f=“http://xmlns.jcp.org/jsf/core” が動かない 
• http://java.sun.com/jsf/core に変えるか、javax.faces.jar を 
差し替え
GlassFish 4.0 に陰りが… 
• Oracle の(4.1からの)商用サポート予定が打ち切り 
• 他に選択肢無いし別に良いけど… 
• 悪い話しが目につくように… 
• そんな時WildFly8.0.0 Final が登場! 
• ついでにJava8 も同時期に登場! 
• さらにDoma2 も!
WildFly 8.0.0 に載せ替え
WildFly 8.0.0 Final に載せ替え 
• glassfish-web.xml => jboss-web.xml 
• 設定してる内容は違うけど… 
• JTA の@Transactional がちゃんと動いた! 
• interceptor 使った似非Transactional から移行 
• javax.facex.jar を差し替えなくてもOK 
• Java8 もほぼ問題無し!
WildFly 8.0.0 Final に載せ替え(ダメな所) 
• Java8 のinterface にstatic method 実装するとCDI でエラー 
• Weld の問題(https://issues.jboss.org/browse/WELD-1664) 
• @nekop さんが直してくれました! 
• Weld 2.2.1 で直ってるけど、諸々の事情でWildFly には載ってない… 
• StereoType でCDI のScoped を指定しても効かない 
• CDI のデプロイエラー 
• 仕様?不具合?
ついでにやった事 
• Java7 + Xtend => Java8 + Lombok 
• 若干不満もあるが、まあそれなりに 
• Java8 + Xtend ってのもありかも 
• Xtend のラムダがJava8 ラムダに置き換わってくれたら迷わずGO 
• Gradle + Doma + Lombok はapt の順番等でハマる 
• Doma1 => Doma2 
• Optional/Date and Time API 対応は良いね!
Java8 にして困ったこと 
• UI(JSF) 側がDate and Time API に対応していない 
• 自前でConverter 用意 
• Doma のDomain クラスもConverter 書かないとダメなので 
しゃーない 
• Optional がSerializable じゃないので使いどころに注意 
• そのくらいであまり困らなかった
WildFly 8.1.0 に載せ替え
WildFly 8.1.0 Final に載せ替え 
• CDI のViewScoped がSerializable じゃないとダメになった! 
• 仕様?今まで動いてた方が問題? 
• StereoType でCDI のScoped を指定しても効かない 
• 8.0.0 から引き続き 
• Java8 interface static method 問題はそのまま 
• 8.2 or 9.0.0 Final でWeld のバージョンを上げる 
https://issues.jboss.org/browse/WFLY-3601 
• GlassFish が4.0.1 でWeld のバージョンを上げる 
https://java.net/jira/browse/GLASSFISH-20922
WildFly 8.1.0 Final に載せ替え(困った所) 
今の所無し!
WildFly 8.1.0 Final で起きた問題(他サーバー未検 
証) 
• src/main/resources に日本語のファイルがあるとデプロイエ 
ラーERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads 
- 2) JBAS014613: Operation ("full-replace-deployment") failed - 
address: ([]) - failure description: {"JBAS014671: Failed services" => 
{"jboss.deployment.unit."stereotypetest.war".STRUCTURE" => 
"org.jboss.msc.service.StartException in service 
jboss.deployment.unit."stereotypetest.war".STRUCTURE: JBAS018733: 
Failed to process phase STRUCTURE of deployment "stereotypetest.war" 
Caused by: java.lang.IllegalArgumentException: MALFORMED"}}
おまけ 
(JDBC Driver for SQL 
Server)
SQL Server との組み合わせ 
• SQL Server 2014 が4月に出たけど、JDBC Driver 繋がるの? 
• 最新(4.0) はサポートしています 
• Microsoft Azure のSQL Database はどうなん? 
• 最新(4.0) はサポートしています 
• SQL Server JDBC Driver は、Java8 なEE サーバーで使える 
の? 
• とりあえず動くけどサポート外です 
• EE サーバーっていうより、Java8 がサポート外(JRE 7 までが対象)
JDBC Driver for SQL Server 
• SQL Server 2014 サポート明記 
http://www.microsoft.com/en- 
US/download/details.aspx?id=11774 
• JRE7 サポート明記 
http://blogs.msdn.com/b/jpsql/archive/2013/09/30/jdbc-jdbc- 
java-7.aspx
Java8 + JavaEE7 
WildFly 
( + SQL Server) 
どんどん試してみましょう!

Más contenido relacionado

La actualidad más candente

Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSatoshi Kisanuki
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQLRyusuke Kajiyama
 
Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Misaki Kajiura
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Koichi Sakata
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyinatus
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側賢 秋穂
 
Beginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyBeginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyToshiaki Maki
 
Beginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_studyBeginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_studyGeorge Okada
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatchJun Inose
 
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!Java女子部
 
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
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFJavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFMasuji Katoda
 
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsYoshimasa Tanabe
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術Y Watanabe
 
Beginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyBeginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyMasato Kawamura
 

La actualidad más candente (20)

Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 
Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_study
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
 
Beginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyBeginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_study
 
Beginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_studyBeginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_study
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch
 
Jsug 20160422 slides
Jsug 20160422 slidesJsug 20160422 slides
Jsug 20160422 slides
 
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
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFJavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
 
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE Apps
 
SpringMVC
SpringMVCSpringMVC
SpringMVC
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
Spring3.1概要x di
Spring3.1概要x diSpring3.1概要x di
Spring3.1概要x di
 
Beginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyBeginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_study
 

Destacado

Declarative Input Validation with JSR 303 and ExtVal
Declarative Input Validation with JSR 303 and ExtValDeclarative Input Validation with JSR 303 and ExtVal
Declarative Input Validation with JSR 303 and ExtValBart Kummel
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ UndertowについてYoshimasa Tanabe
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)sogdice
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJosh Juneau
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?Edward Burns
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)Pavel Bucek
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱Fumio SAGAWA
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 

Destacado (8)

Declarative Input Validation with JSR 303 and ExtVal
Declarative Input Validation with JSR 303 and ExtValDeclarative Input Validation with JSR 303 and ExtVal
Declarative Input Validation with JSR 303 and ExtVal
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 

Similar a Jsf アプリ作ったった

javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたSatoshi Kubo
 
Build an iOS app with ConcourseCI
Build an iOS app with ConcourseCIBuild an iOS app with ConcourseCI
Build an iOS app with ConcourseCI健仁 天沼
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話Yoichiro Sakurai
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2pandeiro245
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発tak-nakamura
 
Visual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger FeatureVisual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger FeatureKazushi Kamegawa
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編Asami Abe
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScriptyjono Seino
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScriptyjono Seino
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へMuyuu Fujita
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよkumake
 
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaHiroshi Sakate
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaなおき きしだ
 
(続) Effective SQLite for Android
(続) Effective SQLite for Android(続) Effective SQLite for Android
(続) Effective SQLite for AndroidShinobu Okano
 

Similar a Jsf アプリ作ったった (20)

javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Build an iOS app with ConcourseCI
Build an iOS app with ConcourseCIBuild an iOS app with ConcourseCI
Build an iOS app with ConcourseCI
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
 
Spring.project
Spring.projectSpring.project
Spring.project
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
Visual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger FeatureVisual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger Feature
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScript
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScript
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
 
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
 
Beginners scala 20121113
Beginners scala 20121113Beginners scala 20121113
Beginners scala 20121113
 
Introduction of Rhodes
Introduction of RhodesIntroduction of Rhodes
Introduction of Rhodes
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
 
(続) Effective SQLite for Android
(続) Effective SQLite for Android(続) Effective SQLite for Android
(続) Effective SQLite for Android
 

Más de Oda Shinsuke

SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdfSQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdfOda Shinsuke
 
Dot net+sql server tips
Dot net+sql server tipsDot net+sql server tips
Dot net+sql server tipsOda Shinsuke
 
Sql server 2019 ざっくり紹介
Sql server 2019  ざっくり紹介Sql server 2019  ざっくり紹介
Sql server 2019 ざっくり紹介Oda Shinsuke
 
Spark on sql server?
Spark on sql server?Spark on sql server?
Spark on sql server?Oda Shinsuke
 
SQL Server のロック概要
SQL Server のロック概要SQL Server のロック概要
SQL Server のロック概要Oda Shinsuke
 
Blazor 触ってみた
Blazor 触ってみたBlazor 触ってみた
Blazor 触ってみたOda Shinsuke
 
Linux + PHP でも SQL Server
Linux + PHP でも SQL ServerLinux + PHP でも SQL Server
Linux + PHP でも SQL ServerOda Shinsuke
 
グラフデータベースの話し
グラフデータベースの話しグラフデータベースの話し
グラフデータベースの話しOda Shinsuke
 
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介Oda Shinsuke
 
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベースSql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベースOda Shinsuke
 
Transaction scopeまだダメ
Transaction scopeまだダメTransaction scopeまだダメ
Transaction scopeまだダメOda Shinsuke
 
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Oda Shinsuke
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返ってOda Shinsuke
 
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返りOda Shinsuke
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみようOda Shinsuke
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Oda Shinsuke
 
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介Oda Shinsuke
 

Más de Oda Shinsuke (20)

SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdfSQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
 
What's hyperscale
What's hyperscaleWhat's hyperscale
What's hyperscale
 
Dot net+sql server tips
Dot net+sql server tipsDot net+sql server tips
Dot net+sql server tips
 
Sql server 2019 ざっくり紹介
Sql server 2019  ざっくり紹介Sql server 2019  ざっくり紹介
Sql server 2019 ざっくり紹介
 
Spark on sql server?
Spark on sql server?Spark on sql server?
Spark on sql server?
 
SQL Server のロック概要
SQL Server のロック概要SQL Server のロック概要
SQL Server のロック概要
 
Blazor 触ってみた
Blazor 触ってみたBlazor 触ってみた
Blazor 触ってみた
 
Linux + PHP でも SQL Server
Linux + PHP でも SQL ServerLinux + PHP でも SQL Server
Linux + PHP でも SQL Server
 
グラフデータベースの話し
グラフデータベースの話しグラフデータベースの話し
グラフデータベースの話し
 
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
 
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベースSql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
 
Transaction scopeまだダメ
Transaction scopeまだダメTransaction scopeまだダメ
Transaction scopeまだダメ
 
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返って
 
Sql world とは
Sql world とはSql world とは
Sql world とは
 
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
 
Sql world とは
Sql world とはSql world とは
Sql world とは
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみよう
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
 
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
 

Último

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Último (9)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Jsf アプリ作ったった

  • 1. JSF アプリ作ったった ~EE サーバー載せかえ祭り~ 2014/08/23 関西WildFly 8(旧JBoss AS)勉強会 @shinsukeoda
  • 2. 自己紹介 • 織田信亮@shinsukeoda • 大阪で開発者やってます • http://odashinsuke.hatenablog.com • SQLWorld http://sqlworld.org/ Micorsoft MVP for SQL Server 2012/10~2014/09
  • 3. アジェンダ • なぜJSF なのか • GlassFish 4.0 に載せる • WildFly 8.0.0 に載せ替え • WildFly 8.1.0 に載せ替え • おまけ(JDBC Driver for SQL Server)
  • 5. RDB を使うシンプルなWeb アプリ • Struts やSeasar からの脱却 • 今後Java8 対応の新機能とか入らなさそうだし… • Spring/Grails/Play/Java EE どれにしようか • でかいORM はあんまり好きくない • JPA/.NET Entity Framework 等々 • 諸々の事情で言語はJava (Xtend)が都合よさげ • どうせなら標準のが良くね?
  • 7. JavaEE 使うとして何で作る? • 一般的なギョームアプリを作るときに… • Pure Servlet + JSP • JavaEE 感が無い • JAX-RS + テンプレートエンジン • 標準っぽくない(偏見?) • JSF • そのままで使えそう
  • 8. 使ったやつら • JSF + PrimeFaces4.0 => PrimeFaces5.0 • CDI • Bean Validation (JSF のValidation では使わない) • JTA (JPA は無し) • Doma1 => Doma2 • Java7 + Xtend => Java8
  • 9. 使ったやつら • トランザクションは、リクエスト単位では無くメソッド単位 • @Transactional 使いたかった=> JTA • FlowScoped(Faces Flows) は微妙 • 要件に合わなかった • JSF のValidation にBean Validation はまだ早い感 • Default Group しか対応してない(OmniFaces つかったらいける?) • JSF のValidation は使わずにCDI のinterceptor でUI にエラー 通知
  • 11. 当時EE7 サーバーがGlassFish 4.0 しか無かった • JTA の@Transactional が上手く動かない • JPA 使った場合は、上手く動いたので何か設定ファイル等の問題? • XADataSource が上手く取れてなかった? • CDI のinterceptor を使ったDoma のLocal Transaction で対 応 • Local Transaction を使いたい箇所と使いたくない箇所が混在 • xmlns:f=“http://xmlns.jcp.org/jsf/core” が動かない • http://java.sun.com/jsf/core に変えるか、javax.faces.jar を 差し替え
  • 12. GlassFish 4.0 に陰りが… • Oracle の(4.1からの)商用サポート予定が打ち切り • 他に選択肢無いし別に良いけど… • 悪い話しが目につくように… • そんな時WildFly8.0.0 Final が登場! • ついでにJava8 も同時期に登場! • さらにDoma2 も!
  • 14. WildFly 8.0.0 Final に載せ替え • glassfish-web.xml => jboss-web.xml • 設定してる内容は違うけど… • JTA の@Transactional がちゃんと動いた! • interceptor 使った似非Transactional から移行 • javax.facex.jar を差し替えなくてもOK • Java8 もほぼ問題無し!
  • 15. WildFly 8.0.0 Final に載せ替え(ダメな所) • Java8 のinterface にstatic method 実装するとCDI でエラー • Weld の問題(https://issues.jboss.org/browse/WELD-1664) • @nekop さんが直してくれました! • Weld 2.2.1 で直ってるけど、諸々の事情でWildFly には載ってない… • StereoType でCDI のScoped を指定しても効かない • CDI のデプロイエラー • 仕様?不具合?
  • 16. ついでにやった事 • Java7 + Xtend => Java8 + Lombok • 若干不満もあるが、まあそれなりに • Java8 + Xtend ってのもありかも • Xtend のラムダがJava8 ラムダに置き換わってくれたら迷わずGO • Gradle + Doma + Lombok はapt の順番等でハマる • Doma1 => Doma2 • Optional/Date and Time API 対応は良いね!
  • 17. Java8 にして困ったこと • UI(JSF) 側がDate and Time API に対応していない • 自前でConverter 用意 • Doma のDomain クラスもConverter 書かないとダメなので しゃーない • Optional がSerializable じゃないので使いどころに注意 • そのくらいであまり困らなかった
  • 19. WildFly 8.1.0 Final に載せ替え • CDI のViewScoped がSerializable じゃないとダメになった! • 仕様?今まで動いてた方が問題? • StereoType でCDI のScoped を指定しても効かない • 8.0.0 から引き続き • Java8 interface static method 問題はそのまま • 8.2 or 9.0.0 Final でWeld のバージョンを上げる https://issues.jboss.org/browse/WFLY-3601 • GlassFish が4.0.1 でWeld のバージョンを上げる https://java.net/jira/browse/GLASSFISH-20922
  • 20. WildFly 8.1.0 Final に載せ替え(困った所) 今の所無し!
  • 21. WildFly 8.1.0 Final で起きた問題(他サーバー未検 証) • src/main/resources に日本語のファイルがあるとデプロイエ ラーERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit."stereotypetest.war".STRUCTURE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit."stereotypetest.war".STRUCTURE: JBAS018733: Failed to process phase STRUCTURE of deployment "stereotypetest.war" Caused by: java.lang.IllegalArgumentException: MALFORMED"}}
  • 22. おまけ (JDBC Driver for SQL Server)
  • 23. SQL Server との組み合わせ • SQL Server 2014 が4月に出たけど、JDBC Driver 繋がるの? • 最新(4.0) はサポートしています • Microsoft Azure のSQL Database はどうなん? • 最新(4.0) はサポートしています • SQL Server JDBC Driver は、Java8 なEE サーバーで使える の? • とりあえず動くけどサポート外です • EE サーバーっていうより、Java8 がサポート外(JRE 7 までが対象)
  • 24. JDBC Driver for SQL Server • SQL Server 2014 サポート明記 http://www.microsoft.com/en- US/download/details.aspx?id=11774 • JRE7 サポート明記 http://blogs.msdn.com/b/jpsql/archive/2013/09/30/jdbc-jdbc- java-7.aspx
  • 25. Java8 + JavaEE7 WildFly ( + SQL Server) どんどん試してみましょう!

Notas del editor

  1. ちょっと前に Xtend 無理やり突っ込んだのに、また別の言語使うと大変そう
  2. Servlet は web.xml 書かずに アノテーションでOKだったりと進歩してるけど… JAX-RS + テンプレートエンジン は、可能だけどオレオレ感がある。Form ベースなアプリでどこまでメンドクサクなく使えるのか懸念 JSF まさにこれじゃねーの?!楽々
  3. トップやサイドにメニューがあるような形だと FacesFlows は合わない。 (急に別 Flow に飛ぶような場合) また、一覧 -> 登録/編集へ遷移するけど、登録/編集 画面は、メニューからも遷移する様な場合も NG(ようは、Flow の起点が複数になるような場合)
  4. Gradle + Doma + Lombok はメンドいから Doma の Entity だけは IDE のソース生成を利用。
  5. 9.0.0 Final は 14/11/11 予定らしい
  6. 8.0.0 から patch 当てたらさくっと 8.1.0 になります。 とりあえず 8.1.0 にしといていいんじゃないでしょうか?
  7. サポートは、JRE5,6,7だけ。JDK 6 ではテスト済。
  8. JDBC Team Blog は 2年前から更新無し。。 Java 8 で動く JDBC Driver は出るのか!!