<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>doradoradora &#187; Java</title>
	<atom:link href="http://dora-0o0-emon.net/tag/java/feed" rel="self" type="application/rss+xml" />
	<link>http://dora-0o0-emon.net</link>
	<description>blog</description>
	<lastBuildDate>Sat, 19 Sep 2009 05:50:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tomcat5.5 ではまったこと。</title>
		<link>http://dora-0o0-emon.net/linux/entry-13.html</link>
		<comments>http://dora-0o0-emon.net/linux/entry-13.html#comments</comments>
		<pubDate>Fri, 12 Sep 2008 04:29:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://dora-0o0-emon.net/?p=13</guid>
		<description><![CDATA[CentOS5 に yum でインストールした tomcat5.5 から PostgreSQL8.3
に DataSource を使って接続しようと思い試してみるとエラーばっかり＞＜
今までは DriverManager [...]]]></description>
			<content:encoded><![CDATA[<p>CentOS5 に yum でインストールした tomcat5.5 から PostgreSQL8.3<br />
に DataSource を使って接続しようと思い試してみるとエラーばっかり＞＜<br />
今までは DriverManager を使っていて問題なく動いていたのですが、<br />
DataSource をどうしても試してみたいので探検することに。<br />
<span id="more-13"></span></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-8857586699971285";
/* 728x90, 作成済み 09/09/06 */
google_ad_slot = "5536792068";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>エラーの内容は</p>
<pre class="brush: plain;">
HTTPステータス 500 -

■例外
org.apache.jasper.JasperException: Could not create resource factory instance
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

■原因
javax.servlet.ServletException: Could not create resource factory instance
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.mainteProduct_jsp._jspService(mainteProduct_jsp.java:335)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

■原因
javax.naming.NamingException: Could not create resource factory instance
[Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:118)
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
org.apache.naming.NamingContext.lookup(NamingContext.java:793)
org.apache.naming.NamingContext.lookup(NamingContext.java:140)
org.apache.naming.NamingContext.lookup(NamingContext.java:781)
org.apache.naming.NamingContext.lookup(NamingContext.java:153)
org.apache.jsp.mainteProduct_jsp._jspService(mainteProduct_jsp.java:119)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

■原因
java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:115)
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
org.apache.naming.NamingContext.lookup(NamingContext.java:793)
org.apache.naming.NamingContext.lookup(NamingContext.java:140)
org.apache.naming.NamingContext.lookup(NamingContext.java:781)
org.apache.naming.NamingContext.lookup(NamingContext.java:153)
org.apache.jsp.mainteProduct_jsp._jspService(mainteProduct_jsp.java:119)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
</pre>
<p>といった感じで tomcat に不慣れな自分にはまったく意味がわかりません。</p>
<p>なんとなく気付いたのは<br />
データベースの設定が書かれた何かを javax.naming が探しにいってるようですが<br />
javax.naming がうまく動いてないのかなってぐらい。</p>
<p>META-INF/context.xml</p>
<pre class="brush: xml;">

&lt;reloadable=&quot;true&quot;&gt;

type=&quot;javax.sql.DataSource&quot; username=&quot;○○○&quot; password=&quot;△△△&quot;
driverClassName=&quot;org.postgresql.Driver&quot; url=&quot;jdbc:postgresql://127.0.0.1:5432/tomcatDB&quot;
maxActive=&quot;10&quot; maxIdle=&quot;4&quot; maxWait=&quot;5000&quot;
&lt;validationQuery=&quot;SELECT * FROM category&quot; /&gt;
</pre>
<p>WEB-INF/web.xml</p>
<pre class="brush: xml;">

postgreSQL Datasource example
jdbc/postgres
javax.sql.DataSource
Container
</pre>
<p>途方に暮れてると<a href="http://hitori-system.blogspot.com/2008/05/jmx-javaxnamingnamingexception.html">ひとりシステム屋さん</a>というページを発見！！</p>
<p>同じ様に Tomcat5.5 のソースをダウンロードしてきて naming-factory-dbcp.jar を　tomcat の common/lib に配置してみると<br />
みごとに動きましたb</p>
<p>ありがとう～「ひとりシステム屋さん」！</p>
]]></content:encoded>
			<wfw:commentRss>http://dora-0o0-emon.net/linux/entry-13.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
