मैंने अभी-अभी वेबस्फेयर लिबर्टी पर इसका परीक्षण किया और निम्नलिखित कोड ने मेरे लिए काम किया:
@Resource(lookup = "jdbc/oracle")
private DataSource ds;
// ...
Connection conn = ds.getConnection();
OracleConnection oracleConn = conn.unwrap(oracle.jdbc.OracleConnection.class);
मेरा सर्वर.एक्सएमएल इस तरह दिखता है:
<dataSource jndiName="jdbc/oracle">
<jdbcDriver libraryRef="oracleLib"/>
<properties.oracle URL="${jdbc.URL}" user="${jdbc.user}" password="${jdbc.password}"/>
</dataSource>
<library id="oracleLib">
<fileset dir="${server.config.dir}/oracle"/>
</library>
<application location="myApp.war" >
<classloader commonLibraryRef="oracleLib"/>
</application>
यहां ध्यान देने वाली महत्वपूर्ण बात commonLibraryRef
. का उपयोग है <classloader>
. पर तत्व। अगर आप privateLibraryRef
. का उपयोग करते हैं यह काम नहीं करेगा क्योंकि ऐप और सर्वर-परिभाषित डेटा स्रोत Oracle JDBC कक्षाओं को लोड करने के लिए पृथक क्लासलोडर का उपयोग करेगा।
यदि यह उत्तर आपके लिए उपयोगी नहीं है, तो कृपया अपने सर्वर के साथ अपने प्रश्न को अपडेट करें। xml कॉन्फ़िगरेशन, और यह भी कि आप अपने DataSource
का उदाहरण कैसे प्राप्त कर रहे हैं ।