[Seasar-user:20119] Re: HOT deploy時にthis.getClass().getPackage()がnullになる

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 9月 1日 (水) 14:30:14 JST


小林 (koichik) です.

Date:    Wed, 1 Sep 2010 12:30:38 +0900
From:    山本学 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:20118] HOT deploy時にthis.getClass().getPackage()がnullになる

> 掲題の通り、HOT deploy時に限り、
> Actionクラスなどでthis.getClass().getPackage()を実行すると
> 結果がnullとなってしまいます。(COOLやWARNであれば正しく取得できます。)

HotdeployClassLoader では definePackage() を
していないためです.

元々 Maven のテスト実行時とか,(昔の?) WebSphere とか
getPackage() は取れないケースも多い (最近の Maven や
WebSphere は知りませんが) ので,あてにしない方が無難です.

もしパッケージ名を取得したいだけなら
Seasar2 の ClassUtil を使って

String packageName = ClassUtil.getPackageName(clazz);

とした方が確実です.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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