स्टैकट्रेस में निम्न पंक्ति को देखते हुए
आप अनुमान लगा सकते हैं कि समस्या क्या हो सकती है। पहली समस्या डेटाबेस ड्राइवर समस्या है जो मुझे लगता है। 1527
डर्बी डेटाबेस का डिफ़ॉल्ट पोर्ट नंबर है जिसे ग्लासफ़िश एप्लिकेशन सर्वर के साथ भेज दिया जाता है।
जैसा कि आपने अपने कॉन्फ़िगरेशन में कोई डेटा स्रोत प्रदान नहीं किया है, सर्वर डिफ़ॉल्ट डेटाबेस को खोजने का प्रयास कर रहा है जो इस मामले में डर्बी है; लेकिन आप उस डेटाबेस से कनेक्ट नहीं हो सकते क्योंकि आपने इस डेटाबेस के लिए कोई कनेक्शन जानकारी प्रदान नहीं की है।
तो आपको अपने META-INF/persistence.xml
में निम्न कार्य करने होंगे :
-
transaction-type
प्रदान करें (आपकी कॉन्फ़िगरेशन में इसे जेटीए माना जाता है क्योंकि आप अपने आवेदन को जेईई पर्यावरण प्रति विनिर्देश पर तैनात कर रहे हैं)<persistence-unit name="unit" transaction-type="JTA">
-
jta-data-source
प्रदान करेंpersistence-unit
. के बच्चे के रूप में तत्व<persistence-unit name="unit" transaction-type="JTA"> ... <jta-data-source>your_data_source_name</jta-data-source> ... </persistence-unit>
उपरोक्त कॉन्फ़िगरेशन के काम करने के लिए आपको अपने एप्लिकेशन सर्वर (ग्लासफ़िश) फ्रिस्ट को कॉन्फ़िगर करना होगा। ऐसा करने के लिए आपको MySQL jdbc ड्राइवर डाउनलोड करना होगा, इसे अनपैक करना होगा और जार फ़ाइल को <glassfish_installation_directory>/glassfish/domains/domain1/lib
में कॉपी करना होगा। (मैं यहाँ ग्लासफ़िश 3.1 मान रहा हूँ)। इसका कारण यह है कि ग्लासफ़िश को MySQL ड्राइवर के साथ शिप नहीं किया जाता है, इसलिए आपको इसे स्वयं करना होगा।
इसके बाद Glassfish प्रारंभ करें और व्यवस्थापक कंसोल खोलें (http://localhost:4848 ) बाएँ फलक पर खुला
Resources/JDBC/JDBC Connection Pools
और एक नया कनेक्शन पूल बनाएंResources/JDBC/JDBC Resources
और एक नया डेटा स्रोत बनाएं। आप अपने डेटा स्रोत को वही नाम देते हैं जो आपको अपनेpersistence.xml
में रखना होता है जैसा ऊपर बताया गया है।