水调歌头

                        小炒
随笔 - 0, 文章 - 5, 评论 - 0, 引用 - 0
数据加载中……

本机搭建 Jira 的过程中遇到的问题

        前2天我们项目组采用新的问题管理与跟踪软件——JIRA,相应的测试人员、开发人员、管理人员也都开始使用Jira了,替换掉长久以来使用的Bugliza工具。
        今天周末,在家无事可做,打算安装一个用用,在网上查了些资料,照着做,途中遇到了些问题,又查查资料,最后终于搞定了,呵呵,下面将这个过程中一些我觉得重要的整理一下。
         我参考的网址如下:
1、http://www.blogjava.net/lucky/archive/2006/05/02/44337.html
2、http://www.javaworld.com.tw/jute/post/view?bid=21&id=120542&sty=1&tpg=1&age=0

      我的本机环境是:winXP + Jdk1.5 + Tomcat 5.5 + Mysql5.0.15 。

      安装Jira按照上面1号链接的blog说明照做就行,但由于我的环境与其blog上面说的有些不太一样(我的Tomcat是5.5),所以我按照1号链接的文档做完后并没有马上成功,但经过调整后很快就ok了,下面是我遇到的问题及对应解决办法:
      问题1、启动Tomcat5.5,控制台抛如下异常:
NestedException: Cannot create JDBC driver of class '' for connect URL 'null'
2006-11-25 22:25:37,218 [core.entity.jdbc.DatabaseUtil] Could not get table name information from the database, aborting.
2006-11-25 22:25:41,546 WARN [jira.config.properties.ApplicationPropertiesImpl] Exception getting property 'jira.extension.container.provider' from da
tabase. Using 
default
2006-11-25 22:25:41,796 ERROR [ContainerBase.[Catalina].[localhost].[/jira]] Exception sending context initialized event to listener instance of class
 com.atlassian.jira.upgrade.ConsistencyLauncher
com.opensymphony.module.propertyset.PropertyImplementationException: Unable to esablish a connection with the database. (Cannot create JDBC driver of
class '' for connect URL 'null')
        at com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.getKeys(OFBizPropertySet.java:
100)
        at com.opensymphony.module.propertyset.AbstractPropertySet.getKeys(AbstractPropertySet.java:
292)
        at com.opensymphony.module.propertyset.PropertySetCloner.cloneProperties(PropertySetCloner.java:
114)
        at com.opensymphony.module.propertyset.PropertySetManager.clone(PropertySetManager.java:
61)
这个异常是由于%TOMCAT_HOME%\conf\Catalina\localhost\jira.xml的配置是为tomcat5.0版配置的。而tomcat5.5在这方面的配置有些不同,比较一下,下面是Tomcat5.0下的配置:
    <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" username="jirauser" password="mypassword" factory="org.apache.commons.dbcp.BasicDataSourceFactory" url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;mysqlEncoding=utf8"/>
    
<ResourceParams name="jdbc/JiraDS">
        
<parameter>
            
<name>driverClassName</name>
                
<!-- NOTE: if you change the database type, you will need to change it in WEB-INF/classes/entityengine.xml -->
            
<value>com.mysql.jdbc.Driver</value>
        
</parameter>
        
<parameter>
            
<name>url</name> <value>jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;mysqlEncoding=utf8</value>
        </parameter>
        
<parameter>
            
<name>username</name>
            
<value>jirauser</value>
        
</parameter>
        
<parameter>
            
<name>password</name>
            
<value>mypassword</value>
        
</parameter>
        
<parameter>
            
<name>factory</name>
            
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        
</parameter>
    
</ResourceParams>
    
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"/>
    
<ResourceParams name="UserTransaction">
        
<parameter>
            
<name>factory</name>
            
<value>org.objectweb.jotm.UserTransactionFactory</value>
        
</parameter>
        
<parameter>
            
<name>jotm.timeout</name>
            
<value>60</value>
        
</parameter>
    
</ResourceParams>

下面是Tomcat5.5的配置,换成下面这个配置就不会抛出上面的异常了:
    <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" username="jirauser" password="mypassword" factory="org.apache.commons.dbcp.BasicDataSourceFactory" url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;mysqlEncoding=utf8"/>

    
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction" factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
到这里还没有完,从网上下载来的应用中没有含有commons-dbcp.jar包,而看上面用红色标示出的org.apache.commons.dbcp.BasicDataSourceFactory 是commons-dbcp.jar包中的类,你可以选择下载commons-dbcp.jar包,放入到应用中;也可以选择使用Tomcat5.5自带的dbcp包,如果使用tomcat5.5的,那么在tomcat的common/lib目录下有个naming-factory-dbcp.jar包,只需将前面红色的部分替换成:org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory即可。
此时,再启动tomcat5.5,看看控制台,应该是正常启动,耐心等待一会儿,第一次正常启动时会建立数据库表。
ok,就到这里。

posted on 2006-11-28 13:22 李福松 阅读(1949) 评论(0)  编辑  收藏 所属分类: Java开发技术—问题跟踪管理


只有注册用户登录后才能发表评论。


网站导航: