Thymeleafのビューから@NamedなCDI管理ビーンにアクセスする

やりたいこと こんなCDI管理ビーンがあって、 @Named @SessionScoped public class SessionDto implements Serializable { private String id; public String getId() { return id; } } Thymeleafのビューからこんな感じで参照したいです。 <p th:text="${sessionDto.id}">...</p> 本当は上記み…

ThymeleafでJava SE 8のDate and Time APIを使う方法

やりたいこと Thymeleafのビューで、java.time.LocalDateなどJava SE 8で入った日時クラス(Date and Time API)を使いたい。 Date and Time APIについてはこちらをどうぞ。 Java日付時刻APIメモ(Hishidama's Java8 Date and Time API Memo) (蓮沼さんの資料…

JJUG CCC 2016 SpringでアクションベースMVCの発表してきた&楽しんできた #jjug_ccc

発表してきた 「ネクストStruts/Seasar2としてのJava EEアクションベースMVC入門」というタイトルで発表してきました。 165人の部屋が、ほぼ満席となるくらいの方々にお越しいただきました。ありがとうございます。 やっぱり、StrutsやSeasar2からの移行をど…

EclipseLinkとHibernateではTemporalType.DATEなフィールドの型が違う

かなり久々のJPAネタ。 こんなエンティティクラスがあって、 @Entity public class Employee implements Serializable { @Id @Column(name = "emp_id") private Integer empId; @Temporal(TemporalType.DATE) @Column(name = "joined_date") private java.ut…

Payara Microの実行可能JAR(Uber JAR)がとても簡単な件

先日、Payara 4.1.1.162がリリースされました! その組み込みサーバー版であるPayara Micro 4.1.1.162には、「Uber JAR」というSpring BootやWildFly Swarmのような単体で実行可能なJARを作る機能が追加されました。 Payara 4.1.1.162 がリリースされました …

Jersey MVCでThymeleafを使おう!

この記事について JJUG CCC 2016 Spring「ネクストStruts/Seasr2としてのJava EEアクションベースMVC入門」の補足記事です。 Jersey MVCで、JSPの代わりのビューとしてThymeleafを使う方法を解説します。 Jersey MVCの基本については、下記の記事を参照して…

Jersey MVC + Thymeleafしたら文字化けた時の対策

環境 OS X 10.11.4 Google Chrome Payara Web ML 4.1.1.161.1 (Jersey 2.22.1) Thymeleaf 2.1.4.RELEASE プログラム概要 @bufferingさんの記事を参考に、Thymeleaf用のTemplateProcessorを作成。 @Provider public class ThymeleafTemplateProcessor extends…

Cloud Foundryワークショップに参加してきました! #cfws

2016-04-05(火)に開催された、Pivotalさん主催のCloud Foundryワークショップに参加してきました! クラウド関連のことはあまり知識がないので、クラウドの世界ってどんなものなんだろう?ということ知りたかったというのが動機です。 講師は@makingさん。冒…

TOEIC受験記(2016年3月)

なぜ受験しようと思ったか 僕の仕事は研修講師(主にプログラミング)なので、色々と調べ物をする時にどうしても英語の仕様書・書籍・ブログ記事などを読む必要が出てきます。やはり、ITの本場はアメリカです。 なので、もっとリーディング力を高めたいと思っ…

Jersey MVCのレスポンスのContent-Typeが「*/*」になる問題対策

詳細は後ほど追記します。 ContianerResponseFilterだと何故かできなかった・・・。 Jersey MVCは、MessageBodyWriterの中でContent-Typeを上書きしています。 ContianerResponseFilterはMessageBodyWriterよりも前に実行されるので、そりゃあ効かないですね…

Payara 161.1 で @Transactional のバグが修正されました!

この記事は、半分ポエムです。 最初のきっかけ 下記の@opengl_8080さんの記事でした。 JavaEE使い方メモ(JTA) - Qiita CDIビーンのメソッドに@Transactionalアノテーションを付加しても、非チェック例外発生時にロールバックされない、というバグがあるの…

Jersey Test + MockitoでJAX-RSリソースクラスの単体テスト

Jersey TestでJAX-RSリソースクラスの単体テストするときに、Mockitoでモックのビジネスロジックを差し込みます。 環境 Payara Web ML 4.1.1.161 Jersey 2.22.1 pom.xml JUnit Jersey Test Jersey Testの実行環境 Mockito が必要です。 jersey-test-framewor…

指定したフォルダ配下の全.javaファイルのタブをスペースに一括変換する

$ find . -name "*.java" -exec perl -i.bak -pe 's/\t/ /g' "{}" \; こうするとタブがスペース4つに変換はされるが、「Xxx.java.bak」というファイルが大量にできるので、これを一括削除。 $ find . -name "*.bak" -delete 参考URL java - Change all tabs …

Jersey MVCでレルム認証する(Jerseyも基本的には方法は同じ!)

Jersey MVCでレルム認証する(Jerseyも基本的には方法は同じ!) Java EEの認証・認可機能といえばレルムですね。 今回は、Jersey MVCでレルムを使ってみました。MVCじゃないJerseyでも方法は基本的に同じです。 ソースコードはGitHubにアップしています。 htt…

「Seasar2が終わる!」と慌てるべきではない理由。「Seasar2」という言葉をしっかり定義しよう

2016年9月26日、Seasar2のサポートが終了します。 Seasar2から卒業しよう - DJ HIGAYASUWO (元ひがやすを) 僕自身、大好きなフレームワークです。 EclipseプラグインのDoltengなど、開発環境までそろったしっかりそろっているフレームワークって、今でもなか…

DBから取ってきたエンティティをビューやRESTに直接渡すべきではない理由?

とりあえず、見つけた記事を自分用にメモ。 極北データモデリング パトリオットミサイル: プログラマーの雑記帳 知りたいこと なぜエンティティをDTOに詰め替えすべきなのか? 詰め替えはどのクラスでやるべきなのか?コントローラー?ビジネスロジック?DAO…

Java EE 7でもアクションベースMVC! -MVC 1.0への移行を睨んだJersey MVCの活用- #javaee

この記事について このブログは、Java EE Advent Calendar 2015 - Qiitaの25日目(最終日)です。 昨日はhondaYoshitakaさんの「Java - JAX-RSによるExcel/CSV/PDFファイルダウンロード - Qiita」でした。 MVC 1.0はJava EE 8から アクションベースMVCと言え…

@Transactional(Spring Framework)のpropagation属性

表題の件を調べていて、ほぼJava EEのJTAと同じかと思いきや、NESTEDというJTAには無いものがあったのでまとめました。 @Transactionalとは? メソッドに付加すると、メソッドの開始がトランザクションの開始、メソッドの終了がトランザクションの終了になり…

Java EEハンズオン事前準備手順(JJUG CCC 2015 Fall) #jjug_ccc #ccc_m1

JJUG CCC 2015 Fallが近づいてきました。 今回、僕は2時間のJava EEハンズオンを担当することになりました。 ■脱Struts&独自フレームワーク!今からでも遅くないJava EE Web開発入門ハンズオン! http://www.java-users.jp/?page_id=2064#M-1 このハンズオ…

【全部俺】JavaのIDE、どれを使う?【3大IDE頂上決戦】

皆さんはJavaのIDE、何をお使いでしょうか。 2015年現在では、おそらく以下の3つのいずれかだと思います。 Eclipse NetBeans IntelliJ IDEA (ちなみに、僕自身が使った経験がほとんどないので、VimやEmacsなどのエディタは今回のスコープから除外しますm( )m…

GlassFish/Payaraで@Transactional境界内で発生した例外が失われる現象が治ってた!

普段から僕は、Java EEやるときはGlassFish/Payaraを使っているのですが、1つだけ懸念事項がありました。それが表題の現象です。それがPayara 4.1.1.154(おそらくGlassFish 4.1.1)で治っていた、というお話です。 どんな現象? Java EEでWeb作るときは、永…

10分で出来る!初めてのTwitter4J & Twitterアプリ作り方メモ in 2015-10-18

最近はJava EE系でもJAX-RS研修の担当が多くなっている関係上、OAuthやRESTクライアントにも興味が出てきました。ということで、初めてTwitter4Jでプログラムを作ってみました。参考にしたのは、@kikutaro_さんのこちらのブログです。 Twitter4Jを使ったら10…

Payara(GlassFish)でMariaDBのJDBC接続プールが作成できない

表題の通りです。 環境 MacBook Air (OS X El Capitan) MariaDB 10.1.x Payara Web 4.1.153 JDK 1.8.0_60 試していませんが、おそらくWindowsやGlassFishでも同じ現象が起こると思います。 現象 MariaDBのJDBCドライバのJARを「<PAYARA_HOME>/glassfish/lib」や「<PAYARA_HOME>/glassfi</payara_home></payara_home>…

【注意事項あり】Doma 2だけどCDI/EJB使ってJTAでトランザクション管理したい!そしてJAX-RSでREST作りたい!

Doma 2とは?基本的な使い方は? Doma 2は、SQLを外部ファイルに書くことができるORマッパーです。ネイティブSQLが書けること、依存ライブラリが無い事、国産 OSSで日本語ドキュメントが充実している事などが魅力です。 下記の記事もご参考になさってくださ…

Payara Micro公式ドキュメントの在り処

自分のためにメモ。 公式ドキュメント Payara Micro (Payara 4.1.153) · payara/Payara Wiki · GitHub Javadoc fish.payara.micro (Payara Micro Edition Core 4.1.154-SNAPSHOT API)

MVC 1.0 EDR2リリース&変更点解説!

公式資料 MVC 1.0のアーリードラフト第2版がリリースされました! JSR 371はこちら JSR-000371 Model-View-Controller Early Draft Review 2 Ozark(MVC 1.0の参照実装)のソースコードはこちら spericas/ozark · GitHub 僕の解説資料 スライド資料 それに伴っ…

CDI/JTAを使うなら読んでおきたいリンクまとめ

日本語書籍 「わかりやすいJava EE」「Java EE 7徹底入門」です。 金魚本およびEE 5本には記載がありません。 Amazon CAPTCHA Amazon CAPTCHA まず概要を掴む CDIに関しては、まずは下記の上妻さんの記事をご確認ください。バージョンが上がるごとに注意点を…

多分どこよりも早いJSON-B解説(Java EE 8・Java API for JSON Binding)

JSON-Bって何? Java EE 8で追加される予定の、JavaオブジェクトとJSONの相互変換を行う機能です。例えば、下記のようなJAX-RSコードがあるとします。 public class Employee { private int id; private String name; private java.time.LocalDate joinedDat…

JSFを使うなら読んでおきたいリンクまとめ

この記事について タイトルの通りですが、JSFを使う上で確認しておきたい情報のリンクをまとめました。 まずはコレ! 菊田さんのJava Day Tokyo 2015の発表資料です。 JSFの全体像や、JSFで何ができるかなどが綺麗にまとまっています。 PDF(直リンク) http…

【修正しました】NetBeansでtarget/generated-sources配下のソースがエディタ上で認識できない場合の対処法

NetBeans+MavenでJPA(EclipseLink or Hibernate)やってると、エンティティのメタモデルクラスが自動生成されます。 これらのソースはプロジェクトルート/target/generated-sources/annotationsフォルダに生成されます。 にも関わらず、NetBeansのエディタ…