[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:48538]
こんにちは。
  松波と言います。
   
  現在、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!