[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:48539] DataSource が正しく読み込まれない。
すみません。
タイトルを記述するのを忘れてしまったので
2重投稿になってしまいました。
こんにちは。
松波と言います。
現在、Fedora
Coreで運用しているシステムをDebianに乗せ変えようとしています。
ちなみに運用中の環境は
apache2.2.3
tomcat5.5.20
java1.5.0.11
mysql5.0
と言った感じです。
それで、
apache2.2
tomcat5.5
mysql5.0
java1.5.0.10
までをすべてapt-get installでインストールして、apache2.2とtomcat5.5の連携まで確認取れました。
それで、実際に運用しているwarファイルを/var/llib/tomcat5.5/webappsに配置したところ以下のエラーがログにはかれていました。
javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:812)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:335)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
このエラーはstruts-config.xmlで定義しているエラーで定義の仕方が悪いということらしいです。しかし、FedoraCoreではこのようなエラーは出力されていませんでした。仕方ないので、一度以下のstruts-config.xmlに記述してあるDataSource部分をコメントアウトして再起動した所、エラーは表示されなくなりました。
struts-config.xml
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="autoCommit" value="false"/>
<set-property property="driverClassName" value="com.mysql.jdbc.Driver"/>
<set-property property="url" value="jdbc:mysql://localhost:3306/test"/>
<set-property property="username" value="test"/>
<set-property property="password" value="test123"/>
</data-source>
</data-sources>
それで、調べているとtomcat5.5からはstruts-config.xmlにDataSourceを記述することは推奨されていないというのを見つけたので、tomcatのserver.xmlに以下の記述に変更しました。
server.xml
<Resource name="jdbc/MySQL" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="test" password="test123"
driverClassName="com.mysql.jdbc.Driver"
url=""/>
すると、エラーは表示されなくなったのですが、システム内でDBにアクセスする際にNullPointerExceptionが発生していました。どうやらDataSourceオブジェクトが生成されていないようでした。
自分はこのようにプログラムの問題かと思っていたのですが、ひょっとしてDebianの設定が間違っていたのでは?と思うようになりました。一番、気になっている点としてはtomcat5.5とapache2.2の連携の部分です。
連携の仕方は、
/etc/apache2/apache2.confに下記の内容を追加
<Location /test/>
ProxyPass
ajp://localhost:8009/test/
Order allow,deny
Allow from all
</Location>
#a2enmod proxy proxy_ajp
#/etc/init.d/apache2 force-reload
といった感じです。
何か、気づいた点やおかしな点があったら教えて頂けますでしょうか。
お願いします。
Big Chance to Win 50,000 Yahoo! Points!