यदि आप Class.forName(...)
. का उपयोग नहीं करते हैं ड्राइवर को मैन्युअल रूप से लोड करने के लिए, तो मुझे लगता है कि आपको maven-assembly-plugin
के साथ एक कुख्यात समस्या का सामना करना पड़ा - यह अलग-अलग jar
. से आने पर समान नाम वाली फ़ाइलों को अधिलेखित कर देता है एस.
आपके मामले में JDBC ड्राइवर डिस्कवरी मैकेनिज्म /META-INF/services/java.sql.Driver
नाम की फाइल पर निर्भर करता है। , और आपके पास कम से कम दो jar
हैं आपकी निर्भरता (Oracle और Postgres ड्राइवर) में ऐसी फ़ाइल है, इसलिए उनमें से एक maven-assembly-plugin
चलाने के बाद खो जाता है ।
आप maven-shade-plugin
का उपयोग कर सकते हैं maven-assembly-plugin
. के बजाय इन फ़ाइलों को ठीक से मर्ज करने के लिए, जैसा कि यहां बताया गया है।
वैकल्पिक रूप से, आप Class.forName(...)
. का उपयोग कर सकते हैं विफल स्वत:खोज तंत्र को दूर करने के लिए।