随笔-348  评论-598  文章-0  trackbacks-0
今天搞了一下Grails的JNDI配置,步骤如下:
1、在应用目录下面,META-INF下建立一个Context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/game_hall_local" docBase="game_hall_local"
        debug
="5" reloadable="true" crossContext="true">

    
<!-- maxActive: Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to -1 for no limit.
         
-->

    
<!-- maxIdle: Maximum number of idle dB connections to retain in pool.
         Set to -1 for no limit.  See also the DBCP documentation on this
         and the minEvictableIdleTimeMillis configuration parameter.
         
-->

    
<!-- maxWait: Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         
-->

    
<!-- username and password: MySQL dB username and password for dB connections  -->

    
<!-- driverClassName: Class name for the old mm.mysql JDBC driver is
         org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
         Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
         
-->

    
<!-- url: The JDBC connection url for connecting to your MySQL dB.
         
-->

    
<Resource name="jdbc/mydatasource" auth="Container"
              type
="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
              url
="jdbc:mysql://localhost:3306/game_hall_cms?useUnicode=true&amp;characterEncoding=UTF-8"
              username
="root" password="root" maxActive="20" maxIdle="10"
              maxWait
="-1"/>

</Context>
2、在DataSource.groovy里面将部署连接配置修改成如下代码:
production {
    dataSource 
{
        pooled 
= false
        dbCreate 
= "update"
        jndiName 
= "java:comp/env/jdbc/mydatasource"
    }

}

3、在应用工程的scripts目录下,简历_Event.groovy文件,内容如下:
import groovy.xml.StreamingMarkupBuilder

if (Environment.current == Environment.PRODUCTION) {
    eventWebXmlEnd 
= {String tmpfile ->
        def root 
= new XmlSlurper().parse(webXmlFile)

        
// add the data source
        root.appendNode {
            
'resource-ref'{
                
'description'('The JNDI Database resource')
                
'res-ref-name'('jdbc/mydatasource')
                
'res-type'('javax.sql.DataSource')
                
'res-auth'('Application')
            }

        }

    
        webXmlFile.text 
= new StreamingMarkupBuilder().bind {
            mkp.declareNamespace(
"""http://java.sun.com/xml/ns/j2ee")
            mkp.yield(root)
        }

    }

}

4、可以进行生产环境编译,这样在生产环境中部署,就可以使用JNDI了。
注意:sql连接的url中如果有&需要转移成&amp;,否则他会报 需要分隔符“;”作为终止符号 的错误。


---------------------------------------------------------
专注移动开发

Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2010-02-08 15:28 TiGERTiAN 阅读(1721) 评论(0)  编辑  收藏 所属分类: JavaGrails

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


网站导航: