[Seasar-user:8357] Re: CoolDeploy時のみ、Tomcat起動時にエラーが発生する

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 6月 15日 (金) 11:57:45 JST


大谷です。

Hotと違って、CoolではCoolComponentAutoRegisterで
初期化時に一括で登録されるため、その時点で
SelectOneUtil.initSelectOneOptions()が動いているようです。
そのためまだFacesContextは無いのでエラーになっているのでは
ないでしょうか。

SELECT_ONE_OPTIONSをpublicな変数とするのではなく、
getSelectOneOptions()とかにして、初期化されてなければ
initSelectOneOptions()するようにしてみてください。


07/06/15 に Taro Unno<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 大谷さん
>
> いつもお世話になっております。
>
> > ・設定がまずい可能性(クリーンビルドが必要)
>
> クリーンビルドは試しましたが状況は変わりませんでした。
>
>
> > ・FacesContextがいない状況下で呼び出している可能性
>
> 内容をご説明します。
>
> 複数のサブアプリケーションで使用するプルダウンの中身を
> Utilクラスに下記のように持たせています。
> これを利用するPageクラスは
>
> 1.AbstractBasePage・・・全てのページクラスの親
> ↑継承
> 2.AbstractサブアプリケーションBasePage
> ↑継承
> 3.サブアプリケーションPage
>
> という構成にしています。
> 上記2のクラスから、
> SelectOneUtil.SELECT_ONE_OPTIONS
> を呼び出しています。
> このUtilクラスは、Pageクラスからのみ使用しています。
>
> CoolDeployの場合のみ、FacesContextがない段階で
> SelectOneUtilクラスが初期化されているかもしれないということでしょうか。
>
> まだ不足の情報がありましたら、お手数おかけしますが、
> ご指摘ください。
>
> <Utilクラスここから>-----------------------------------------------------------------
> package ルートパッケージ.util;
>
> import java.util.ArrayList;
> import java.util.Collections;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
>
> public class SelectOneUtil {
>
>         public static final List SELECT_ONE_OPTIONS;
>
>         static{
>                 SELECT_ONE_OPTIONS = initSelectOneOptions();
>         }
>
>         private SelectOneUtil(){
>         }
>
>         private static List initSelectOneOptions(){
>
>                 List<Map> list = new ArrayList<Map>();
>                 Map<String, String> m1 = new HashMap<String, String>();
>                 m1.put("label", LabelUtil.getLabelValue("option1"));
>                 m1.put("value", "1");
>                 list.add(m1);
>                 Map<String, String> m2 = new HashMap<String, String>();
>                 m2.put("label", LabelUtil.getLabelValue("option2"));
>                 m2.put("value", "2");
>                 list.add(m2);
>                 return Collections.unmodifiableList(list);
>         }
> }
> <Utilクラスここまで>-----------------------------------------------------------------
>
> 以上、宜しくお願い致します。
> 海野
>
>
>
>
> 07/06/15 に Shinpei Ohtani<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 大谷です。
> >
> > これだけではあまり的確にはいえませんが、
> > ・設定がまずい可能性(クリーンビルドが必要)
> > ・FacesContextがいない状況下で呼び出している可能性
> > (FacesContextが作成される前(例えばFilterやListenerなど)では
> > 当然LabelUtilも使えません。)
> >
> > Utilクラスの中身と、そのUtilクラスが使われる状況を
> > もう少し教えてください。
> > 宜しくお願いします。
> >
> > 07/06/15 に Taro Unno<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > 海野です。
> > > お世話になっております。
> > >
> > > Teeda1.0.7で作成したChuraProjectのアプリケーションが、
> > > HotDeployとWarmDeployでは問題ないのに
> > > CoolDeployではTomcat起動時にエラーが発生する
> > > という現象に出くわしております。
> > >
> > > ルートパッケージ.util.xxxUtilクラスのstaticメソッドの中から、
> > > javax.faces.internal.LabelUtil#getLabelValue(String)
> > > を呼び出しているのですが、デバッガで確かめたところ40行目の
> > > FacesContext.getCurrentInstance()がnullになっていて
> > > NullPointerExceptionが発生しているように見えます。
> > > (StackTraceを添付いたします。)
> > >
> > > ルートパッケージ.utilパッケージはこちらで勝手に追加したもので、
> > > diconファイルは特に設定しておりません。
> > > (HotDeploy時にはこのパッケージ内のクラスを普通に使えていたので、
> > > 設定は不要だと思っていました。)
> > >
> > > 何か設定がまずいのかもしれません。
> > > 見当がつく方、どうぞ宜しくお願い致します。
> > >
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > >
> > >
> > >
> >
> >
> > --
> > =============================
> > Shinpei Ohtani
> > [E-MAIL ADDRESS DELETED]
> > =============================
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



Seasar-user メーリングリストの案内