- PR -

DataSourceクラス

1
投稿者投稿内容
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2004-01-19 15:48
こんにちは、皆様には大変お世話様になっております。Strutsフレームワークで行っているのです。DataSourceクラスを利用してmysqlのデータベースに繋ぎたいのですがServletExceptionがでて困っています。
ブラウザから、ユーザーとパスワードを入力しユーザー認証を行おうとしているのですが、画面遷移されません。
mysqlのドライバーに問題があるのでしょうか?。お気づきの方おりましたら宜しくお願いします。
root cause
エラー内容
コード:
java.lang.NoClassDefFoundError: org/apache/struts/legacy/GenericDataSource
	at java.lang.ClassLoader.defineClass0(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1679)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:968)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1409)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
	at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:207)
	at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
	at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1081)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
	at javax.servlet.GenericServlet.init(GenericServlet.java:256)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
	at java.lang.Thread.run(Thread.java:536)





config.xmlの参照するdataソース
コード:
<data-sources>
	<data-source>
		<set-property property="driverClass"value="org.gjt.mm.mysql.Driver"/>
		<set-property property="maxCount" value="4"/>
		<set-property property="minCount" value="1"/>
		<set-property property="url" value="jdbc:mysql://localhost/okiniiri"/>
		<set-property property="user" value="trust"/>
		<set-property property="password" value="itseminar"/>
	</data-source>
</data-sources>




Actionクラスの一部
コード:
	ServletContext context = servlet.getServletContext();
		
		//データソースの取得struts-configに設定

		DataSource dataSource = (DataSource)context.getAttribute(org.apache.struts.Globals.DATA_SOURCE_KEY);

			try{
					//DBコネクションの取得
					conn = dataSource.getConnection();
					stmt= conn.createStatement();



Struts1.1を利用しています。


mysqlのコネクタ : mm.mysql-2.0.14-bin.jarは catalina_home/libにおいてあります。

mysqlのデータベースアクセスのユーザー名 trust

mysqlのデータベースアクセスのパスワード itseminar は設定しています。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-01-19 16:58
struts-legacy.jarが参照できないのが原因だと思います。struts-legacy.jarをcommon/lib
かWEB-INF/libに入れてみてください。
花瓶夫
ベテラン
会議室デビュー日: 2003/10/01
投稿数: 50
投稿日時: 2004-01-19 19:55
ukさん回答誠に有難うございました。繋がりました。また何かありましたら宜しくお願いします。
1

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