[Seasar-user:12457] Re: Teeda Ajax ajaxXxxxxメソッドでコンポーネントが登録されていない?

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 1月 10日 (木) 20:30:06 JST


小林 (koichik) です.

Date:    Thu, 10 Jan 2008 19:56:51 +0900
From:    "kiyoshi hosoda" <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:12455]  Re: Teeda Ajax ajaxXxxxxメソッドでコンポーネントが登録されていない?

> setterメソッドは最初は作ってなかったのですが、うまくいかないのでsetterを追加して
> 見て試しましたがpublicフィールドのままでした。その後、setterを削除して実行した
> 結果が先ほどのログです。

それはおかしいですね.
先のログには

> 2008-01-10 14:05:14,901 [http-8080-Processor24] DEBUG
> org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
> tools.web.dictionary.SearchWordPage#setTerminologicDictionaryDao(tools.dao.TerminologicDictionaryDao$$EnhancedByS2AOP$$[E-MAIL ADDRESS DELETED])

と出力されているので,SearchWordPage クラスには
setTerminologicDictionaryDao() メソッドがあったはずです.

もしかして SearchWordPage は他の Page クラスを
継承していたりしますか?
スーパークラスにも terminologicDictionaryDao が
あって,

public abstract class AbstractPage {
  protected TerminologicDictionaryDao terminologicDictionaryDao;
  //setter & getter

  public Class doSearch() {
    ...
  }
}

public class SearchWordPage extends AbstractPage {
  public TerminologicDictionaryDao terminologicDictionaryDao;

  public Map<String, String> ajaxGetDetail() {
    ...
  }
}

のようになっているなら最初のログは辻褄が合うような.

> privateフィールドに変更し、setterを作成して実行したログを添付します。
> ログの最初でSearchWordPage#doSearchメソッドを実行し(成功)、その後
> SearchWordPage#ajaxGetDetailメソッドを実行してNullPointerExceptionが
> 発生しています。

これとは辻褄が合わないので違うかもしれませんが.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>



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