2012-04-20 19 views
14

मैं का उपयोग कर JNDI के माध्यम से डेटा स्रोत लोड कर रहा हूँ: जब मैं ग्रहण (इंडिगो एसआर लांचअज्ञात NullPointerException() लाइन: 96

JDK 1.6.0_31 बिलाव 6.0.30

2) डीबगर, यह टूट जाता है:

Daemon System Thread [Finalizer] (Suspended (exception NullPointerException)) 
    JdbcOdbcDriver.finalize() line: 96 
    Finalizer.invokeFinalizeMethod(Object) line: not available [native method] 
    Finalizer.runFinalizer() line: 83 
    Finalizer.access$100(Finalizer) line: 14  
    Finalizer$FinalizerThread.run() line: 160 

मैं वास्तव में इस नुकसान के कारण नुकसान में हूं। इसके अलावा, यह मेरे निष्पादन को बिल्कुल प्रभावित नहीं करता है। मेरे डेटा स्रोत प्रारंभ किए जाते हैं और सामान्य के रूप में उपयोग किए जाते हैं, और मुझे उन सभी परिणामों को मिल रहा है जिन्हें मैं उम्मीद करता हूं। मैंने जो पढ़ा है, उससे ओरेकल ड्राइवर मुद्दे से संबंधित हो सकता है?

MyApp \ META-INF \ context.xml

<Resource name="jdbc/conn" auth="Container" 
    type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" 
    url="@[email protected]" username="user" password="@[email protected]" 
    initialSize="4" maxActive="8" 
    defaultAutoCommit="false" 
    accessToUnderlyingConnectionAllowed="true" 
    testOnReturn="true" 
    validationQuery="select 1 from dual" 
    poolPreparedStatements="false" 
    connectionProperties="SetBigStringTryClob=true" 
    factory="org.apache.commons.dbcp.BasicDataSourceFactory" 
/> 

MyApp \ वेब-INF \ web.xml

<resource-ref> 
    <description>My DataSource</description> 
    <res-ref-name>jdbc/conn</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 
+3

लोग संदर्भ के लिए JdbcOdbcDriver [स्रोत कोड] (http://javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/jdbc/odbc/JdbcOdbcDriver.java.html) देखना चाहते हैं। – adarshr

+0

@adarshr आपके द्वारा दिया गया लिंक अब स्पैम/मछली पकड़ने को इंगित करता है (या मेरा कंप्यूटर संक्रमित है?)। मैंने [एक और लिंक] (http://j6a.ru/_jdbc_odbc_driver_8java_source.html) पाया। – Matthieu

+0

ओरेकल जेडीबीसी चालक का कौन सा संस्करण आप उपयोग करते हैं? –

उत्तर

3

अंत में मैंने इस अपवाद को अनदेखा कर दिया क्योंकि यह निष्पादन समाप्त नहीं करता है। जबकि मुझे सटीक कारण नहीं पता है, यह घातक प्रतीत नहीं होता है।

+1

मेरी इच्छा है कि आपको इसके लिए स्पष्टीकरण मिले, लेकिन कोई भी इसे अच्छी तरह से समझ में नहीं आता .. – Periback

+1

यह बहुत हानिकारक उत्तर है क्योंकि अंतिमकरण विधि में अनदेखा अपवाद स्मृति रिसाव की ओर ले जाता है। –

+0

@ ग्रेगरी.के, मैं सहमत हूं, लेकिन जैसा कि आप देख सकते हैं, किसी और ने जवाब नहीं दिया, और मुझे असली समाधान कभी नहीं मिला। –

0

मैं तुम्हें प्रारंभ करने के लिए एक कॉल वंचित हो रहे हैं ग्रहण करेंगे()। यह एक एनपीई को OdbcApi को ठीक करना चाहिए।

-1

मैंने पहले सोचा था कि यह जवाब था। मैं गलत था।

अंत में मैंने इसे समझ लिया। मेरे पास कुछ प्रबंधित बीन्स थे जिन्हें डेटाबेस द्वारा समर्थित किया गया था। ये कामयाब सेम

@eager एनोटेट गया सर्वर ग्रहण से एप्लिकेशन को शुरू कर दिया है, वे instantiated कर रहे थे और उपकरण डेटाबेस के लिए चला गया डेटा प्राप्त करने के। मुझे डेटाबेस बीन (एक शून्य सूचक अपवाद) से विधि में फेंक दिया गया अपवाद था, और नतीजतन, डेटाबेस से कनेक्शन खुला छोड़ दिया जा रहा था।

किसी भी तरह, .metadata फ़ोल्डर को खराब और दूषित कर दिया गया था। मैं ग्रहण से बाहर निकला। फिर मैं ग्रहण कार्यक्षेत्र में गया और एक सुरक्षित प्रतिलिपि रखने के लिए .mamadata फ़ोल्डर को अपने डेस्कटॉप पर कॉपी किया, फिर मैंने इसे वर्कस्पेस में हटा दिया।

मैंने ग्रहण फिर से शुरू किया। कोई परियोजना नहीं थी। मैंने उन्हें आयात> फ़ाइल सिस्टम का उपयोग करने में वापस आयात किया।

मैं मैं रीसेट करने के लिए बिलाव घर था परियोजना गुण के तहत और के तहत विंडो> प्राथमिकताएं पथ बिल्ड ठीक करने के लिए किया था,। वोला, इस सुपर कष्टप्रद समस्या से छुटकारा पा लिया।

समस्या का कारण यही था। उम्मीद है कि यह किसी की मदद करता है।