プログラム
前シリーズと似たような話題。前シリーズでSQLiteを試しておいて、 あっさり次のDBの登場となりました。JPAのサンプルを作ってみようとして試行錯誤中、 O/Rマッパー用のBeanを自動生成する段階で どうしても生成したクラスがビルドエラーとなるのでSQLiteは…
その4のつづき。 今更だけど、このシリーズ、JavaEE関係ないなぁとは思うけど、 横着できるツールを探して時短に活用するってのもテクニックなので、 無駄かもしらんけれど、こんな調査もたまには必要だよねっ。ちなみに今回はSQLを書かずに、諸々の操作が…
その3のつづき。DEPT表のDDLを作り、SQLエディタから流してみる。 CREATE TABLE DEPT ( DEPTNO INTEGER NOT NULL, DNAME TEXT(14), LOC TEXT(13), PRIMARY KEY (DEPTNO) ) SQLの実行はCTRL + ENTERとのこと。 コミットしてもDatabase Navigaterには反映され…
その2のつづき。EclipseのプラグインでDB参照できるものといえば、 真っ先に思いつくのがDBViewer。 仕事では大変お世話になった。 このプラグインは少し使うにはいいのだが、 かゆいところに手が届いていないなぁ、といつも思っている。そこで何か新しいDB…
JavaEEのJPA機能、O/Rマッパーの機能を今後試してみる予定だが、 それにはDBがいる。 MySqlとかPostgreSQLとか都合の良いのがあるのだが、 仰々しいDBをインストールするのも気が引ける。 「なら、Java DBでいいじゃん」って思ったのだが、 OpenJDKを使って…
その6の続き。前回スキーマファイルから自動生成したJavaファイルをRESTのプロジェクトに取り込み、 出力結果を確認してみる。 Javaクラスが変更されているため、RESTのリソースクラスにも変更が必要となり、 下記のように書き換えた。 リソースクラス もと…
その5の続き。 <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="result" type="catalog"/> <xs:complexType name="catalog"> <xs:sequence> </xs:sequence></xs:complextype></xs:element></xs:schema>
その4の続き。Eclipseのウィザードに「JAXBプロジェクト」、「JAXBクラスからスキーマ」といったものがあるので、 今回のxsdファイル作りはこれでやってみることにする。 1. プロジェクト作成 ファイルメニューから新規を選び、ウィザードから「JAXBプロジ…
その3のつづき。結果が想定と違ってしまい、何が悪いのかとふと考えた。 出力したい項目にはアノテーションが付いているし。。。 と、昔、仕事でWebAPIを作っていた頃を思い出してみた。当時、インプットとアウトプットに使うBeanクラスを手作りした記憶が…
その2のつづき。今度はリクエストにパラメータを持たせたパターン……つまり、POSTでの実装を試してみる。 加えて、リクエストはJSONでレスポンスがXMLのパターンをやってみる。 JSON → JAVA変換も、JAVA → XML変換もJAXBという機能を使って行うが、 ランタイ…
JavaEE 7をやってみよう。JAX-RS その2から関連して。WebAPIなんかを作った時の試験や動作確認をする際、 非常に役立つのがApache JMeter。 今後、使うのでインストールしておいた。下記のサイトからダウンロードし展開するだけでOK。 Apache JMeter - Down…
その1のつづき。RESTというのは、URLにパラメータを含めることができる。 URLの最後に付けられるクエリのことではなく、 パスそのものがパラメータとして扱える。「http://localhost:8080/{アプリケーション名}/rest/ship」 前回、このURLでテキストを返す…
むか〜し、仕事でJAX-RSを使ってWebAPIを作ったりしたことがあって、 こんなの余裕だろって思ったのだけど、 すっかり忘れてしまっていて、 初歩の初歩さえ、ままならなかった。 無念。しかたなく、今回も1から思い出せるように、 JAX-RSのサンプルを書いて…
これまで作った動的WebプロジェクトにMavenの機能を加えて見ようと思う。 今すぐ必要ではないのだが、 Apache Commonsを使いたいと思ったりした時などに ライブラリの追加が必要になるので、 前もってやってみることにした。 1. プロジェクトのプロパティか…
その4のつづき。もはや、限定子を使いまわす、ということからは外れてしまうのだが、 気を取り直して続きを書く。 package warship; 〜〜 import 省略 〜〜 @Named(value="fleet") @RequestScoped public class Fleet { @Inject @First private IWarShip fi…
その3のつづき。限定子を使いまわせないか、ということで、 今度は重巡クラスを追加する。 package warship.impl; import javax.enterprise.context.RequestScoped; import warship.AHeavyCruiser; import warship.qualifier.First; @RequestScoped @First …
限定子について。 インターフェイスにつき複数の実装がある場合、限定子を使うと書いた。 けど、クラスを増やす事に限定子を作るのって「めんどくさい」と思った。 ならば、限定子は使い回せないか?と考えた。というわけで、こんなサンプルを書いてみたのだ…
その1のつづき。その1に書いたサンプルは、 インターフェイスに対して実装クラスが1つしかなかったが、 複数の実装を持つインターフェイスはどうインジェクションされるのだろう。 Springだとコンフィグに書いた記憶もあるが、詳しくは忘れた。 ここではJ…
今回は、DIをやります。 これまでは仕事でSpringを少々いじった程度。 あ、Google guiceも触ったか。とにかく、機能が似てるのに色々作りやがって。 と思いながら、JavaEEのDI機能、CDIを触ってみる。 ・IText インターフェイス まず、DIする機能として文字…
先日、GlassFishツールの件で、JVMをOpenJDK8に上げた。 Eclipse起動時に警告が出るようになった。 コンソールを見るとPermSizeとMaxPermSizeはJava8で削除されたとあった。(無論、英語でだが) Eclipseの起動オプションにXXPermSizeとXXMaxPermSizeを指定し…
Java環境を変えるのが億劫で、これまでずっとデフォルトのOpenJDK7を使っていた。 GlassFishツールを使うのにJDK8が必要で、 とうとう、OpenJDK8のインストールをすることになった。調べてみると、14.04はppaを追加して、インストールするとのこと。Ubuntu 1…
このJavaEE7の調査(訓練か?)については、 ネット検索で見つけたサンプルを真似しつつ、 自分なりにサンプルをアレンジして書いている。 ネットで散見するサンプルは大抵、NetBeans + GlassFishだったりするのだが、 自分の環境であるEclipse + Wildfly上で…
その1のつづき。エラーメッセージについて。 実はデフォルトでもエラーメッセージは用意されている。 「なら、作らなくていいじゃん!」と思うけど、 実はこれ、英語はわからんが、日本語はださい。さすがに項目名もメッセージもこのままは使えないっしょ。…
validator その3からのつづきエラーメッセージについては、文言をベタ書きしたくない。 プロパティファイルに別途持ちたい。 どうやって読み込むのだろう。色々インターネットを漁った結果、下記にたどり着いた。JSFの標準メッセージを塗り替えるお仕事 - Ch…
その2のつづき。Managed Beanにバリデータメソッドを追加する場合。 これは単純。 Managed Beanにバリデータメソッドを追加して、 JSF側から呼びだせば良いわけだ。 package manage; import javax.enterprise.context.RequestScoped; import javax.faces.ap…
その1のつづき。自作のバリデータクラスを使う方法について。 バリデータクラスを作るには、 javax.faces.validator.FacesValidator; を実装したクラスを作成すればよい。 そして、@FacesValidatorアノテーションを付け、 名前を決めてあげれば良い。 こん…
JSFのバリデータを使ってみる。 JSFには標準のバリデータがいくつか用意されている。 バリデータ名 機能 f:validateLength 文字数チェック f:validateRegex 正規表現による文字チェック f:validateRequired 必須入力チェック f:validateLongRange 整数値範囲…
その3の続きhello.xhtmlでデータを表形式で出力する際、JSFのカスタムタグを使ってみた。 dataTable*1 column*2 outputText*3 dataTableはリストからTableタグを使った表の出力を行うためのタグ。 カラムの一つ一つの定義にはcolumnタグを、 実際の値の出力…
その2からの続き。○hello.xhtml JSFを使ったViewの作成。 まず、ファイルの格納位置を決める。先のHelloServlet.javaからのフォワード先を"faces/jsf/hello.xhtml"としていた。 だから単純にプロジェクトのWebContentの下にfaces/jsfとフォルダを作り、 そこ…
その1の続き。今度は、Servletからページを返す版として、 Servletから複数レコードのデータを送信し、 View側では受け取ったデータを表形式で表示するものを作ってみる。作るもの。 Servletクラス(HelloServlet.javaと命名) Servletから遷移するJSFで作るV…