配置数据库连接池 - Axis2 webservice

时间:2009-07-31 16:59:14

标签: oracle tomcat connection-pooling axis2

我想知道如何修改server.xml文件,以便在axis2上构建的所有webservices都可以使用Connection Pooling与DB通信。每个Web服务都有一个不同的数据源,一个指向一个DB实例,另一个指向另一个DB服务器。如何指定每个服务应使用的上下文?

提前致谢, POJO

1 个答案:

答案 0 :(得分:1)

如果要在项目中使用连接池,请确保为Tomcat连接池设置以下代码以在context.xml文件中工作:

1)创建名为“context.xml”的文件,如果它在目录“WebContent / META-INF / context.xml”下不存在,则包含以下内容:

对于我的项目,请使用适当的值进行修改:

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/dbcp" docBase="dbcp">  
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" 
        removeAbandoned="true" removeAbandonedTimeout="30" maxActive="80"   
        maxIdle="30" maxWait="10000" username="sontn" password="nhantien"
        driverClassName="org.postgresql.Driver"
        url = "jdbc:postgresql://localhost/group8"   useUnicode="true"
        characterEncoding="utf-8" characterSetResults="utf8"/>
</Context>

或者您可以将file:context.xml复制到目录“$ Catalian \ webapps \ axis2 \ META-INF”

如何获得连接池?

在您的webservice方法中:使用以下内容创建方法getConnection():

public Connection getConnection() {   
    Connection connection = null;   
    try {
        Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
        DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB");
        connection = ds.getConnection();
    }
    catch (Exception e) {
        System.out.println("Connection error: " + e.getMessage());   
    }
    return connection; 
}

由于