2013年12月31日火曜日

【メモ】NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index

環境はjavaee6 + glassfish3.1系。 

persistence.xmlを読み込むあたりで以下のエラーが発生。

「NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index」

結論として hibernate-entitymanagerのjarバージョンを

4.3.0.CR2

3.6.10.Final

に変更したら治りました。

 javaEE6はJPA2.0だから4系のバージョンは対応していなかったのかもしれない。

2013年12月27日金曜日

【JSF2】richfacesを動かしたかったのだが、、

下記のサイト様を参考にrichfacesを使ってみようと思いましたが、うまく行かず。。。。
http://kikutaro777.hatenablog.com/entry/2013/07/07/233121

環境は以下
・eclipse4.3 kepler
・glassfish3.1 または glassfish3.1.2.2 でも同様のエラーが発生。


cannot Deploy sample
deploy is failing=デプロイメント中にエラーが発生しました: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: org/atmosphere/cpr/AtmosphereServlet。詳細はserver.logを参照してください。



primefacesは問題なく動作確認できたのですが、richfacesはうまくいきませんでした。
よくわかりません。




【JSF2】デフォルトエラーメッセージを変更する。

jsf-apiのjarの中を除くとメッセージファイルがある。 デフォルトロケールがjaの場合、Messages_ja.propertiesが読み込まれている。
 

WEB-INF配下にclassesフォルダを作成し、その配下に 自作のメッセージプロパティファイルを作成する。 (ファイル名形式はxxxx_ja_JP.properties。xxxx_ja.propertiesでもいいみたい。)

上書きしたいメッセージをプロパティに定義  (以下のサンプルでは必須エラー時のデフォルトメッセージ(キー名:javax.faces.component.UIInput.REQUIRED)を変更してみた)



faces-config.xmlに作成したメッセージファイルを定義する。

実際の画面は以下。必須エラーのメッセージが変更されたことを確認できる。
また、日付形式エラーメッセージはjsf-api内のメッセージプロパティの内容が表示されていることを確認。


2013年12月7日土曜日

JSF2によるカスタムバリデータのサンプル

JSF1.2系などと異なりJSF2系では必要なアノテーション定義することで設定ファイル(faces-config.xml)は必須でなくなりとてもスマートで良いですね!
なるべくならアノテーションによる既存バリデーションで済むのがベストですが、やはり、カスタムバリデータが必要なのも現実です。。
ということで、以下に携帯電話番号入力のカスタムバリデータをやってみました。

カスタムバリデータを作るには以下がポイントです。
  1. javax.faces.validator.Validatorインターフェースを実装しvalidateメソッドを実装します。
  2. カスタムバリデータクラスに対して@FacesValidatorを付与します。また一意となるIDを定義します。(例ではパッケージ+クラス名としています。)
  3. 画面側でf:validatorタグのvalidatorId属性に@FacesValidatorで指定したIDを指定します

■MobilePhoneValidator.java(カスタムバリデータクラス)
■inputSample.xhtml(入力画面)
■InputBean.java(入力画面で入力された値を格納するBeanクラス)
■inputSampleOk.xhtml(次の画面)

2013年11月29日金曜日

EclipseでGlassFishをAPサーバ時にホットデプロイを有効にする手順

初期設定ではXHTMLなど変更しても反映されない・・・。

つまりホットデプロイが有効になっていない。

環境は以下
windows7 32bit
eclipse 4.3.1
GlassFish 3.1

サーバの設定を開き、
公開欄が「自動公開しない」→「リソースの変更時に自動的に公開」に変更し、保存(ctrl+s)する。


2013年11月4日月曜日

Dell InspironMini910にUbuntu 13.04をインストールする

1.Ubuntu 13.04のISOをダウンロード。

2.unetbootinというフリーソフトを使用し、USBメモリにISOを展開する。

3.InspironMini910に2で作成したUSBメモリを差し、Ubuntu 13.04をインストールする。

4.無線LANが認識していないので、一旦有線LANでネット接続し、以下のコマンドを実行。

~$ sudo apt-get update
~$ sudo apt-get upgrade
~$ sudo apt-get install bcmwl-kernel-source

5.再起動後、無線LANが認識していることを確認。

■スペックは以下を参考に
http://abc.s65.xrea.com/dell/wiki/INSPIRON/910/


■無線LANの手順は下記参考
https://wiki.ubuntulinux.jp/UbuntuTips/Hardware/HowToSetupBcm43xx

2013年7月20日土曜日

オートマトン理論について

オートマトン理論がおもしろい。

以下のサイトがわかりやすい。
プログラマなら知っておいたほうが良い。

因みに「応用情報技術者試験(AP)」の範囲でもある。


■オートマトンの基礎
http://www1.adachi.ne.jp/katz/primer/automata.html

 ■川渡り問題
http://ja.wikipedia.org/wiki/%E5%B7%9D%E6%B8%A1%E3%82%8A%E5%95%8F%E9%A1%8C

■3人の宣教師と3人の土人
http://www.umechando.com/playroom/04.htm

2013年6月29日土曜日

エディットテキスト(EditText)でHTMLタグによる装飾をしてみた。

エディットテキスト(EditText)でHTMLタグによる装飾を行うサンプル。
また、ディスプレイの縦と横幅の表示。






2013年6月15日土曜日

Twitterウィジェットが表示されない件について

ホームページに貼り付けていたTwitterのタイムラインのウィジェットが表示されなくなっていた。。


原因はサービスが終了したようだ。

新たに再作成する必要がある。

参考サイト: Twitterタイムラインを表示するウィジェットが提供終了になるとのことです

2013年5月25日土曜日

レスポンスヘッダ情報を全て表示


Android開発中にて。
サーバから取得データが文字化けしていたため、
サーバからのレスポンスの内容を確認用。
ヘッダ情報を表示すれば文字コードも確認できます。

// ※responseはHttpResponseクラスを表す。
for (Header header : response.getAllHeaders()) {
String sHeaderName = header.getName();
String sHeaderValue = header.getValue();
Log.d("HTTP Test", "getAllHeaders() : " + sHeaderName + " : " + sHeaderValue );
}