teeda..

  • [teeda]filterからエラー画面

Filterでセッションチェックとかやるんだけど、
DB接続とか絶対エラーはあるもの。
だけどfilterはTeedaのライフサイクル管理外なんで、
普通に error.html には遷移しない。
無理やりエラー画面に飛ばしてみた。

            final LifecycleFactory lifecycleFactory = (LifecycleFactory) WebAppUtil
                .getFactory(FactoryFinder.LIFECYCLE_FACTORY);
            final Lifecycle lifecycle = lifecycleFactory
                    .getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);

            final FacesContextFactory facesContextFactory = (FacesContextFactory) WebAppUtil
                .getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
            final FacesContext context = facesContextFactory.getFacesContext(
                    config.getServletContext(), request, response, lifecycle);

            Map redirectScope = RedirectScope.getOrCreateContext(context);
            redirectScope.put(JsfConstants.ERROR_MANAGER_EXCEPTION_KEY, exception);

            String contextPath = context.getExternalContext().getRequestContextPath();
            String url = contextPath + this._errorUrl;
            // エラー画面へ遷移
            NavigationHandlerUtil.redirect(context, url);

[JMeter]ログイン認証セッション保持


1. [ワークベンチ]-[追加]-[Non-Testエレメント]-[HTTPプロキシサーバ]

  • ポート番号を設定
  • [対象となるコントローラ]テスト計画>[スレッドグループ]

2. スレッドグループに「HTTPクッキーマネージャ」を追加しておく

3. ブラウザのプロキシにlocalhostの1.のポートを設定して、ログイン→対象操作を実施

4. スレッドグループにHTTPリクエストが追加されるので不要なリクエストは削除(画像とか)

5. ログインアクセスはスレッドグループの「一度だけ実行されるコントローラ」に移動

6. 実行

ItemsSaveを復元

submitでなくAjaxでItemsSaveを復元したい。
ItemsSaveHiddenのvalueをPOSTしてPage側で、
Base64のデコード→デシリアライズでいけた

String s = [hiddenの値];
byte[] bs = Base64Util.decode(s);
Object obj = SerializeUtil.fromBinaryToObject(bs);

cvsをsubversionへ移行

  • cvs2svnをダウンロード

http://cvs2svn.tigris.org/servlets/ProjectDocumentList?folderID=2976
Pythonを使うので準備

# which python

今回は入ってるので省略

  • 解凍
  • 実行

# cvs2svn --encoding=Shift_JIS --fallback-encoding=UTF-8 -s [変換先のSVN]/repos [変換元のCVS]/repos


ああ。pythonのバージョンが古い。

# /usr/bin/pythonをバックアップ
# cd /usr/local/src/
# wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
# tar zxfv Python-2.5.2.tgz
# cd Python-2.5.2
# ./configure
# make
# make install
# ln -s /usr/local/bin/python2.5 /usr/bin/python

# python -V
Python 2.5.2

あとは、vi /usr/bin/yumの1行目を編集して
バックアップしておいたほうのpythonに。

  • 再実行

# cvs2svn --encoding=Shift_JIS --fallback-encoding=UTF-8 -s [変換先のSVN]/repos [変換元のCVS]/repos/[project]

dbのバージョンが違うエラー。

  • 再再実行

# cvs2svn --fs-type=fsfs --encoding=Shift_JIS --fallback-encoding=UTF-8 -default-eol=CRLF -s [変換先のSVN]/repos [変換元のCVS]/repos/[project]
※改行コードがLFになるので、-default-eol指定

そのまま、SVNのreposにつっこんで、conf/svnserve.confを流用してOK。

Kumu.validator

submit時にalertではなく、入力時のリアルタイムチェックのみ。
項目別にヒント表示もしてあげないとつらいかな。
全部OKになるまでsubmit無効化も可能。


参照
http://teeda.seasar.org/ja/kumu_validate.html

<script type="text/javascript" src="kumu.js"></script>
<script type="text/javascript" src="event.js"></script>
<script type="text/javascript" src="validate.js"></script>

<script>
// nameじゃなくidで指定にする
Kumu.Validator.modeId(true);
// ターゲットのIDとValidatorを指定
KumuValidatorConf = {
	// testをcallback
	id : {'Required' : test}
}
function test(element, result){
	if(result){
		element.style.background = '#ffffff';
	}else{
		element.style.background = '#ff6666';
	}
}
<script>