Java EE 事始め!

主にJava EEについて、つらつらとマイペースに書いていきます。「Java EEを勉強するときに、一番最初に読んでもらえるブログ」を目指して頑張ります!

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のエディタ…

【20160806更新】Mac版Eclipse 4.5 Mars/4.6 Neonをpleiadesで日本語化する方法

tar.gz版のダウンロード Eclipse公式サイトのトップからだと、インストーラーを実行してインストールする版になります。 従来通りの解凍するだけで完了するtar.gzファイルは、下記のページからダウンロードできます。 http://www.eclipse.org/downloads/pack…

MacでJava開発環境を整える

セキュリティソフト カスペルスキーの1台3年版を使っています。特に重くなく快適に使えています。 参考URL カスペルスキー 2015 マルチプラットフォーム セキュリティ 製品情報|カスペルスキー キーボードの謎の記号 ネットでいろいろとMacの情報を調べて…

JJUGのReactive Streams勉強会に行ってきました!

最近ちょこちょこ話題になっている「Reactive Streams」についての勉強会に行ってきました! 僕の事前知識は「『React.js』とか『RxJava』っつーのがあるらしい」という程度です。 実際に触ったことはない・・・(^^; 事前にちょっとネットで調べはしたんです…

jBatch(Java EE 7)をNetBeans+GlassFish+Mavenではじめました

jBatchとは? Java EE 7から新たに加わった、バッチ処理用フレームワークの仕様です。 EE 6までは、Java EE標準仕様にバッチは入っていなかったのですが、EE 7から加わりました。 正式名称は「Batch Application for the Java Platform」で、公式?の略称が…

IntelliJ IDEAでJAX-RSが捗る!

小ネタです。 IntelliJ IDEA 14.1.1 Ultimate Editionを前提としています。最近は、意識してIntelliJ IDEA+GradleでJava EEやってます。 いつもはNetBeans+Mavenを使うことが多くて、これが一番手軽なんですが、IDEAは補完がとにかく強力で、「ここも補完…

もう1つのGlassFish「Payara」を使ってみた

「Payara」とは? GlassFishをベースとした、オープンソースのAPサーバーです。Payara Homeドメインが「.co.uk」ということで、イギリスの企業みたいですね。 上記の公式Webサイトによると、「24時間365日サポートしてまっせ!」「GlassFishをバグ修正したり…

JSR 371(MVC 1.0) Early Draft version 1.0 の日本語訳(後編)

この記事について Java EE 8の新機能であるMVC 1.0のJSR 371 Early Draft Release 1 を、英語の勉強がてら日本語訳してみました。 今回は後編として、第5章~第6章(最後まで)を訳します。前編(第1章~第2章)はコチラ↓ JSR 371(MVC 1.0) Early Draft vers…

JSR 371(MVC 1.0) Early Draft version 1.0 の日本語訳(中編)

この記事について Java EE 8の新機能であるMVC 1.0のJSR 371 Early Draft Release 1 を、英語の勉強がてら日本語訳してみました。 今回は中編として、第3章~第4章を訳します。第5章~第6章は、後編とします。 前編(第1章~第2章)はコチラ↓ JSR 371(MVC 1.…

JSR 371(MVC 1.0) Early Draft version 1.0 の日本語訳(前編)

この記事について Java EE 8の新機能であるMVC 1.0のJSR 371 Early Draft Release 1 を、英語の勉強がてら日本語訳してみました。 僕はあまり英語が得意ではないので、正確な内容を知りたいという方は、下記の英語原文をお読みください。 https://jcp.org/en…

Java EE 7のトランザクション管理(JTA)概要

以前、MVC 1.0の記事で、Java EEのトランザクション管理について書きました。 MVC 1.0ではじめる簡単Java EE開発入門! - Java EE 事始め! @RequestScoped public class ManufacturerService { @PersistenceContext(unitName = "ozarkPU") private EntityMa…

JJUG CCC 2015 Springレポート&質疑応答時の訂正事項

おととい、JJUG CCC 2015 Springに参加してきました! 幸運なことに、3回連続でスピーカーに選んでいただけました。テーマは「はまる!JPA(初学者向けライト版)」です。 直前で体調を崩してしまってプレゼンの練習ができず、時間配分ミスしました・・・。 …