spring - ClassCastException: Can't cast oracle.sql.ARRAY to oracle.sql.ARRAY in JBoss 7.1.1.Final -
DemoApp jboss 7.1.1.Final में तैनात वसंत एकीकरण परियोजना है
परिणाम एक संग्रहीत से लौटे प्रक्रिया oracle.sql.ARRAY (वस्तु jboss मॉड्यूल के ojdbc जार चर्चा करते हुए)
का उद्देश्य होता है और मैं जो अपवाद
फेंकने oracle.sql.ARRAY में कनवर्ट करने की कोशिश की कोड:
<कोड> URL resultJarLocation = resultMap.get ( "returnObj") getClass () getProtectionDomain () getCodeSource () getLocation ()।; यूआरएल appJarLocation = oracle.sql.ARRAY.class.getProtectionDomain ()। GetCodeSource ()। GetLocation (); System.out.println ("परिणामजार स्थान:" + परिणामजार स्थान); System.out.println ("एप्लिकेशन जेल स्थान:" + एप्लिकेशन जेल स्थान); Oracle.sql.ARRAY वापसी ओबज = (oracle.sql.ARRAY) resultMap.get ("returnObj");
अपवाद:
org.springframework.messaging.MessageHandlingException: java.lang.ClassCastException: oracle.sql.ARRAY oracle.sql में ढाला नहीं जा सकता है। ARRAY
एप्लिकेशन एआरएआरई कक्षा तैनात किए आवेदन में ओजडीबीसी जार का जिक्र कर रहा है। जहां ojdbc जार jboss मॉड्यूल Sys आउटपुट परिणाम सेट ARRAY वर्ग referreing के रूप में:
resultJarLocation: जार: फ़ाइल: / & LT; JBOSS_HOME & gt; appJarLocation /modules/com/oracle/ojdbc6/main/ojdbc6.jar : वीएफएस: / & LT; JBOSS_HOME & gt; /bin/content/DemoApp.war/WEB-INF/lib/ojdbc6.jar
आप विभिन्न क्लासलोडरों द्वारा लोड किए गए वर्गों के बीच कास्ट करने का प्रयास कर रहे हैं। जेवीएम कक्षाओं को न केवल नाम और पैकेज के द्वारा बल्कि क्लासलोडर द्वारा भी अलग करती है। दूसरे शब्दों में, जेवीएम परिप्रेक्ष्य से स्ट्रिंग को लांग कहने का प्रयास करने की तरह है; आप नहीं कर सकते। केवल आप सोच सकते हैं कि कॉन्फ़िगरेशन है।
मैं जेबोस (विशेष रूप से वर्तमान संस्करण) से बहुत परिचित नहीं हूं, लेकिन मुझे पता है कि यह एक ही क्लासलोडर का उपयोग करने के लिए, या क्लासलोडर्स को उसी पदानुक्रम में रखने के लिए सेट करें। अन्य एप्लिकेशन सर्वरों की तुलना में (या अतीत में है) कुछ बहुत अलग क्लासोडिंग रणनीति है क्लासलोडिंग पर उसके प्रलेखन के साथ जांचना मेरा पहला विकल्प होगा।
Comments
Post a Comment