ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Seasarコミュの[S2DAO]"[ESSR0073]OGNLで例外"の原因について

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんにちは。
S2Daoに取り組み始めたのですがどうしても以下のエラーが回避できません。


■エラー内容
type 例外レポート

メッセージ

説明 The server encountered an internal error () that prevented it from fulfilling this request.

例外

org.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が発生しました。理由はognl.OgnlException: Could not get static field class from class org.seasar.dao.impl.ClobTest [java.lang.ClassNotFoundException: org.seasar.dao.impl.ClobTest]
org.seasar.framework.util.OgnlUtil.getValue(OgnlUtil.java:42)
org.seasar.framework.container.impl.ArgDefImpl.getValue(ArgDefImpl.java:55)
org.seasar.framework.container.assembler.AbstractBindingTypeDef.getValue(AbstractBindingTypeDef.java:98)
org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindManual(AbstractBindingTypeDef.java:125)
org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:62)
org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:49)
org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:81)
org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:51)
org.seasar.framework.container.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:97)
org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:284)
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:399)
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:396)
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:396)
jp.co.hogehoge.s2dao.sample.Meisyo_mst_client.doGet(Meisyo_mst_client.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


このエラーをEclipseでデバッグしていると、Daoの呼び出し元(Servlet)で、container.init();実行時に発生
しています。※S2Containerの生成ではエラーになりませんでした。
EclipseとKijimunaを使用している為、diconファイルはチェックがOKになっているので問題ないとは思っています。
S2Daoのサンプルと見比べたりもしているのですが、問題点がわかりません。
上記現象の内容がご存知の方がいらっしゃいましたら、アドバイスをお願い致します。



■開発環境
OS : Windows XP SP2
Tomcat : 5.5.17
Eclipse : 3.1.2
Seasar :
S2Dao : 1.0.35
DB : Oracle 10g(Release1)
※jarファイルは、S2Container/S2Daoのlibディレクトリの中身を全てWEB-INFに格納
 しました。(その他、Oracle10gのJDBCが含まれています)
 
■今までやったこと
1.S2Daoを使用せずにDBに接続し、データの取得をすることはできた。
2.S2Daoを丸ごとインポートし、サンプルを実行したが正常に動作した。



【以下、ソース及びdiconファイル】===============================================

■プログラムの内容
DB(Oracle)内のMEISYO_MSTを全件取得し、ブラウザ上に表示する。
※ただし、Servletではブラウザ表示の部分はまだ記述していない。


■Meisyo_mstDao(DAO)
package jp.co.hogehoge.s2dao.sample;

import java.util.List;

public interface Meisyo_mstDao {

/**
* アノテーション(Beanの指定)
*/
public static final Class BEAN = Meisyo_mst.class;

/**
* 名称マスタリストの取得
*/
public List getAllList();
}


■Meisyo_mst(DTO)
public class Meisyo_mst {

public static final String TABLE = "MEISYO_MST";

private String kbn;
private String no;
private String naiyo;

public void setKbn(String value) {
kbn = value;
}

public void setNo(String value) {
no = value;
}

public void setNaiyo(String value) {
naiyo = value;
}

public String getKbn() {
return kbn;
}

public String getNo() {
return no;
}

public String getNaiyo() {
return naiyo;
}
}


■Meisyo_mst_client(servlet)
package jp.co.hogehoge.s2dao.sample;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;
import java.util.ArrayList;
import jp.co.hogehoge.s2dao.sample.Meisyo_mst;
import jp.co.hogehoge.s2dao.sample.Meisyo_mstDao;

public class Meisyo_mst_client extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private static final String PATH = "jp/co/hogehoge/s2dao/sample/meisyo_mstdao.dicon";

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

S2Container container = S2ContainerFactory.create(PATH);
container.init(); <-- ココで例外発生
Meisyo_mstDao wmdao = (Meisyo_mstDao)container.getComponent(Meisyo_mstDao.class);

ArrayList alRec = (ArrayList)wmdao.getAllList();

System.out.println("OK "+alRec.size());
}
}


■meisyo_mstdao.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
"http://www.seasar.org/dtd/components23.dtd">

<components>
<include path="jp/co/hogehoge/s2dao/sample/dao.dicon"/>
<component name="Meisyo_mstDao" class="jp.co.hogehoge.s2dao.sample.Meisyo_mstDao" >
<aspect>dao.interceptor</aspect>
</component>
</components>

コメント(1)

自己レスです。

原因判明しました。
j2ee.diconに接続先DBの設定が必要だったことを知りません
でした。
DBサーバーが別端末だったもので、接続先DBをどうやって判断
しているのだろうと思い、調べてみたところj2ee.diconに辿り
つきました。

お騒がせ致しました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Seasar 更新情報

Seasarのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング