[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!