- - PR -
Struts+XMLBean+JUNITforStrutsでのエラーについて。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-08 19:10
はじめまして。
現在、Struts + XMLBean + JUNIT for Strutsにて検証作業を行なっているのですが、 どうしてもうまく行きません。 現状、下記の構成にて検証を行なっています。 【構成】 index.html ← 呼び出し画面 ↓↓ TestListAction.java ← Actionクラス ↓↓ TestListXml.java ←XMLBeansダイジェスタクラス ↓↓ 次の画面 index.htmlからアクションパスを指定しリクエストを投げ、 Actionクラス側でXMLBeansダイジェスタクラスを生成する際に 下記のようなエラーが出てしまいます。 =========================================================================== type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました 原因 java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlOptions jlms.action.nd.TestListAction.execute(TestListAction.java:147) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 注意 原因のすべてのスタックトレースは、Apache Tomcat/5.0.28のログに記録されています =========================================================================== しかし、JUnit for Struts を使用したテスト環境では、エラー出力されずに期待した形のXMLが 出力されます。 つまり、HTTP通信ではうまく呼べず、単体レベルではうまく動作する状況です。 もし、原因がお分かりになる方がいらっしゃいましたら、ご教授のほど宜しくお願いします。 【サンプルソース】 @TestListAction.java =========================================================================== package test.action; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import test.xmlbean.TestListXml; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.validator.DynaValidatorActionForm; public final class TestListAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //FormBeanの取得 DynaValidatorActionForm aForm = (DynaValidatorActionForm) form; //HashMapに配列のセット aMap = new HashMap(); //XMLデータの作成処理 XmlBeanObject aXmlBean = new TestListXml(); strResXml = (String) aXmlBean.getXml(aMap); System.out.print(strResXml); return null; } } =========================================================================== ATestListXml.java =========================================================================== package test.xmlbean; import java.util.ArrayList; import java.util.HashMap; import test.xmlbean.XmlBeanObject; import noNamespace.EListDocument.EList; import noNamespace.FailureDistLogListDocument.FailureDistLogList; import noNamespace.RequestInfoDocument.RequestInfo; import noNamespace.SListDocument.SList; import noNamespace.SiaiListDocument.SiaiList; import noNamespace.TListDocument.TList; import noNamespace.TaikaiListDocument.TaikaiList; import org.apache.xmlbeans.XmlOptions; public class TestListXml implements XmlBeanObject { public String getXml(HashMap aMap) throws Exception { String strXmlData = ""; try { //初期処理 // @XMLオブジェクトの生成 XmlOptions opts = new XmlOptions(); opts.setValidateOnSet(); // 値設定時のデータ型妥当性検証を有効化(A) strXmlData = aNdFlashDLog.xmlText(opts); System.out.println("saved : " + strXmlData); } catch (Exception e) { e.printStackTrace(); } return (String) strXmlData; } } =========================================================================== |
|
投稿日時: 2004-10-08 19:15
クラスが見つかっていないようです。
ライブラリはひと揃い WEB-INF/lib に配置されていますか? |
|
投稿日時: 2004-10-08 20:20
インギさんの言うとおりでした。
Exlipse上では、クラスパスとして登録していたのですが、 WEBINF/LIB以下に入れていなかったために、エラーとなっていました。 ご教授、ありがとうございました。 |
1