यदि आप किसी विक्रेता-विशिष्ट इंटरफ़ेस में JDBC ऑब्जेक्ट (डेटा स्रोत, कनेक्शन, आदि) को खोलना चाहते हैं, तो JDBC ड्राइवर को कॉन्फ़िगर किए गए <datSource>
में एप्लिकेशन क्लासलोडर के लिए उपलब्ध होना चाहिए। कॉन्फ़िगरेशन कुछ इस तरह दिखेगा:
<application location="oraclejdbcfat.war" >
<!-- expose the 'DBLib' containing the JDBC driver jar to the app classloader -->
<classloader commonLibraryRef="DBLib"/>
</application>
<library id="DBLib">
<fileset dir="${server.config.dir}/postgresql/" includes="*.jar"/>
</library>
<dataSource jndiName="jdbc/myDS">
<jdbcDriver libraryRef="DBLib"/>
<properties .../>
</dataSource>
वहां से, आप ऑब्जेक्ट को उसी तरह से खोल सकते हैं जैसे आप पहले कर रहे थे, अर्थात्:
DataSource ds = InitialContext.doLookup("jdbc/myDS");
Connection conn = ds.getConnection();
PGConnection pgConn = conn.unwrap(org.postgresql.PGConnection.class);
साथ ही, एक enableConnectionCasting
. भी है <dataSource>
. पर बूलियन विशेषता कॉन्फ़िगरेशन जो स्वचालित रूप से आपके लिए getConnection()
. पर अनरैप को कॉल करेगा ।
<dataSource jndiName="jdbc/myDS" enableConnectionCasting="true">
तब जावा कोड थोड़ा आसान होता है:
DataSource ds = InitialContext.lookup("jdbc/indi");
PGConnection pgConn = (PGConnection) ds.getConnection();