2007年9月5日水曜日

svcadm/svcs

IPアドレスの変更を反映させるだけのために Solaris をリブートしたくない。
Solaris 10 ではこのあたりは SMF の管理下にある。

# svcadm restart network/physical

これでできたようだ。

2007年9月4日火曜日

Solaris changing host/network config

あっさりと動いた。

/etc/hostname.<itf> // bge0
<simply put hostname for the itf>

/etc/hosts
<update entry as needed>

/etc/nodename
<node name of the system itself>

/etc/defaultdomain
// did not exist

/etc/defaultrouter
// put default gateway address

/etc/inet/netmasks
<network addr> <mask>

2007年9月3日月曜日

grub chain loading

見よう見まね、行き当たりばったりでつかってきたので、大事なことを知らなかった。

grup から linux も solaris もあげたいとき、solaris の grub を使えば動く
のは知っていて、それが唯一の方法かと勘違いしていた。chain loading を
使うのがどうやら常識のようで...

title Solaris
rootnoverify (hda0,3,a)
chainloader +1

これで solaris のパーティションから solaris をロードできるブートローダ
(Solaris の grub)が起動される。

2007年9月1日土曜日

Solaris 10 again

Solaris 10 u3 をインストール。

システムは PC サーバーだが、余計なインターフェイスがついているのでインストーラ
起動前にドライバアップデートが必要。

GUI モードのインストーラはドライバアップデートを使うとうまくいかないことが
あるらしいので(実際にエラーが発生)、CUI で入れる。Lan も二つあって、
どちらか迷ったがインスタンス番号が少ないほうで進めた。

---

Xvnc は以前ユーザー起動で xdm login できるようにしていたが、そのやりかたが
思い出せない。散々試した挙句、次の方法でいけることがわかった。

vncserver :2 -query localhost

2007年8月7日火曜日

Facelets

http://homepage1.nifty.com/algafield/glove.html を参考にとりあえず
動かしてみようと試みるがこれがなかなか動かない。

myfaces などの jar に dtd が入っていないことに気づく。
更新してみると、今度は jsf が古いために起動しない。

[04/Apr/2007:16:19:14] warning ( 1940): JSF1033: Resource injection is DISABLED.

なんだかんだで動作したが、この手のエラーは大変だ。
dtd をいろいろとコピーしてみたが、なかなか。

WebLogic, Geronimo では動作するが、Tomcat ではなぜか画面が真っ白だ...

2007年8月6日月曜日

JSF

Struts, Spring はそこそこやったので、JSF も使えるようになっておこうと挑戦してみる。
これといったよさげな書籍がなかったり、古かったりで少し億劫になっていた。
Sun の開発ツールで GUI で触っていたが、少しやってみたところで飽きてしまっていた。
Sun One Studio Creator (?) 等ではどうしても画面ががちがちのレイアウトに縛られて
いるように見えてしまったのも興味をそいだ原因かも。

基本的には faces-config.xml で ManagedBean と navigation rule 等を定義、ManagedBean
は名前とクラスメイト、スコープを最低限定義、navigation rule は from view id に
対して navigation-case を指定して、action の結果に応じて進める view を決める。
form-action を明示的に指定する場合はいいのだが、指定しないといつも success が
返るのだろうか...

ManagedBean 自体は POJO のようなものでも動くし、EJB や何らかの integration を
つかって Model を呼び出せる。

View は JSP が前提となるのか、Tiles, Velocity 等が使えるのか、外部のプラグイン
等が必要なのか要調査。

デフォルトでは (NetBeans では) Faces Servlet が /faces/* にマップされている。
実際には直下においた jsp はそのままのパスではアクセスできず、/faces/ をつけると
アクセスできる。というか、パスの変換が行われているようだ。
斜め読みだが WEB-INF の下には(デフォルトでは?)アクセスできないので、
配置の仕方に注意。

.jsp が URL になってしまうのは格好が悪い気がしたが、これは
javax.faces.DEFAULT_SUFFIX パラメータで変更できる。このパラメータを
探していると Facelet, Apache Faces 等の技術を見つける。これらも
時間を見て勉強しよう。

Seasor2 も見はじめていたが、S2JSF というコンポーネントでは View に
JSF を使う。web.xml でだいぶカスタマイズして(これくらいは実プロジェクト
では当然?)使っている。

2007年7月2日月曜日

JSTL & web-app (servlet?) version

web-app_2_3.dtd までしか対応していない app server でテストを行うことが発生。
たいていの環境は web-app_2_4.xsd で動いていたし、NetBeans 5.5 の作る
web.xml もそうなっている。

次のように DTD 指定に書き換えるだけでよさそうと最初は思った。

<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/dtd/web-app_2_3.dtd'>

動作させるうちにすぐに問題に気がついた。JSTL の c:forEach が効かないのだ。
なんというか、式がそのまま表示されるだけだ。

結果として taglib の宣言を sun.com/ のあとに jsp があるものからないものに
直して動作するようになった。

(A)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

(B)
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

JSTL のページを斜め読みする限り (A) は JSTL 1.1, (B) は JSTL 1.0 の
uri でどうやら式言語の評価方法も異なるようだ。しかも、それがサーブレット
コンテナのバージョンに依存しているということのようである。

確か、以前 2.4 + 1.0 でエラーで悩まされてそのときに (A) の記述を見つけて
そのように直して解決した記憶がおぼろげながらある。逆 2.3 + 1.1 の場合
にはよりわかりにくい状況になるということだ。よく調べたらありそうだが、
JCTL の動作のトレース情報は簡単に出せるのだろうか...

使用している JCTL のライブラリ自体は 1.1 のままでこのような違いがでて
いるのも不思議な感じ。taglib 指定で動作を変え、コンテナの使い方まで
変えてくるのであれば、良くない組み合わせに警告を出してくれると
いいのだが... OpenSource は怖い。