[Seasar-user:20057] Re: [S2Chronos] Task内でのService使用について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2010年 8月 10日 (火) 20:00:33 JST
小林 (koichik) です.
Date: Tue, 10 Aug 2010 19:22:43 +0900
From: 鈴木 雄輔 <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:20056] [S2Chronos] Task内でのService使用について
> 現在、Teeda、S2JDBC、S2Chronos を使って開発を行っています。
> Taskクラス内でS2JDBC-Genから生成されたServiceクラスを使用しているのですが、
> 同ServiceクラスをPageクラスで、使おうとすると下記メッセージが出力されます。
>
> 「WARN org.seasar.framework.container.hotdeploy.HotdeployClassLoader - HOT
> deploy対象クラス(xxx.agile.service.EmpService)が非対象クラスから参照されて通
> 常のクラスローダにロードされています。」
EmpService が HOT 非対象クラスローダにロードされる
原因となったクラスを特定した方がいいかも.
Tomcat (Web コンテナ) を起動する JVM オプションで
-verbose:class を指定してみてください.
「非対象クラスから参照されて〜」より (もしかしたら
ずっと) 前に
[Loaded xxx.agile.service.EmpService from org.seasar.framework.container.hotdeploy.HotdeployClassLoader]
と
[Loaded xxx.agile.service.EmpService from file:〜]
という 2 つのメッセージが表示されるはずです.
後者の方が HOT deploy 非対象のクラスから参照されて
ロードされたものなので,その周辺でロードされた
クラスから該当のもの (EmpService を参照している
クラス) を見つけてください.
EmpService が InitialTask・IndexPage からしか
参照されてないのであれば,
[Loaded xxx.agile.task.InitialTask from file:〜]
か
[Loaded xxx.agile.web.IndexPage from file:〜]
のどちらかが出力されているはずです.
どちらの場合でも,それが一度は HotdeployClassLoader に
ロードされたなら
[Loaded xxx.agile.xxx.Xxx from org.seasar.framework.container.hotdeploy.HotdeployClassLoader]
が出力されるはずなので,その場合は何がきっかけで
通常のクラスローダにロードされたのかを調べることに
なるかと.
出力されていなければ,そもそも HOT 非対象に
なってしまっているのだと思われるので,設定ファイルを
見直すことになるかと.
--
<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 メーリングリストの案内