- PR -

Struts+XMLBean+JUNITforStrutsでのエラーについて。

1
投稿者投稿内容
jami
会議室デビュー日: 2003/10/03
投稿数: 11
投稿日時: 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;
}

}

===========================================================================
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-10-08 19:15
クラスが見つかっていないようです。
ライブラリはひと揃い WEB-INF/lib に配置されていますか?
jami
会議室デビュー日: 2003/10/03
投稿数: 11
投稿日時: 2004-10-08 20:20
インギさんの言うとおりでした。

Exlipse上では、クラスパスとして登録していたのですが、
WEBINF/LIB以下に入れていなかったために、エラーとなっていました。

ご教授、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)