2012-05-03 13 views
16

हाय दोस्तों मुझे अपना जेएक्सबी पार्सर बनाने के दौरान बहुत अजीब सामना करना पड़ा। जब मैं ग्रहण से JAXB वर्गों उत्पन्न करने की कोशिश तो एक वर्ग में यह पता चलता है एक बहुत ही अजीब त्रुटि है जोjdk1.7/jre/lib/rt.jar पर पहुंच प्रतिबंध

Access restriction: The type QName is not accessible due to restriction on required library /usr/lib/jvm/jdk1.7.0_02/jre/lib/rt.jar 

यह इस लाइन मैं त्रुटि संदेश मिल रहा AM पर मेरी कक्षा

package generated; 

import javax.xml.bind.JAXBElement; 
import javax.xml.bind.annotation.XmlElementDecl; 
import javax.xml.bind.annotation.XmlRegistry; 
//import javax.xml.namespace.QName; 
import javax.xml.namespace.*; 


@XmlRegistry 
public class ObjectFactory { 

और यहाँ है

निजी अंतिम स्थिर QName _ExpenseReport_QNAME = नया QName ("", "व्यय रिपोर्ट");

/** 
    * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: generated 
    * 
    */ 
    public ObjectFactory() { 
    } 

    /** 
    * Create an instance of {@link ExpenseT } 
    * 
    */ 
    public ExpenseT createExpenseT() { 
     return new ExpenseT(); 
    } 

    /** 
    * Create an instance of {@link UserT } 
    * 
    */ 
    public UserT createUserT() { 
     return new UserT(); 
    } 

    /** 
    * Create an instance of {@link ItemT } 
    * 
    */ 
    public ItemT createItemT() { 
     return new ItemT(); 
    } 

    /** 
    * Create an instance of {@link ItemListT } 
    * 
    */ 
    public ItemListT createItemListT() { 
     return new ItemListT(); 
    } 

    /** 
    * Create an instance of {@link JAXBElement }{@code <}{@link ExpenseT }{@code >}} 
    * 
    */ 
    @XmlElementDecl(namespace = "", name = "expenseReport") 
    public JAXBElement<ExpenseT> createExpenseReport(ExpenseT value) { 
     return new JAXBElement<ExpenseT>(_ExpenseReport_QNAME, ExpenseT.class, null, value); 
    } 

} 
+2

संभावित रूप से संबंधित: http://stackoverflow.com/questions/860187/access-restriction-on-class-due-to-restriction-on-required-library-rt-jar – assylias

+0

धन्यवाद - यह मेरे लिए सहायक होगा :) – khan

उत्तर

37

यह समस्या तब होती है जब आप कक्षा पथ JDK जिसमें परियोजना में खुला है के बजाय JRE लिए बात कर रहा है, एक बात

Build Path > Libraries

के लिए जाने के क्रम कि शामिल किया गया है निकालें और जोड़ते हैं jdk रनटाइम, अब आपको अपनी समस्या का समाधान करना चाहिए।

+6

मैवेन/जेएक्सबी/एम 2 ई/ग्रहण के साथ मेवेन-जैक्सबी 2-प्लगइन का उपयोग करते समय मुझे यह समस्या हो रही थी। ग्रहण जावा 1.5 का उपयोग कर रहा था, इसलिए मैंने अपने स्रोत और लक्ष्य संस्करणों को 1.7 पर सेट करने के लिए मेवेन-कंपाइलर-प्लगइन जोड़ा और चीजें अच्छी थीं। –

+0

मुझे लगता है कि @NathanielWaisbrot सही है (कम से कम कुछ मामलों में)। मुझे एक ही समस्या थी, लेकिन जेडीके का उपयोग कर रहा था। मेरे लिए 1.5 निश्चित चीजों के बजाए जावा 1.7 के लिए मेवेन प्लगइन भी सेट अप करना। – jedison

+0

जावा 8 में, मुझे com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem() को तत्काल करने के दौरान एक ही त्रुटि मिली; 1.5 के लिए जावा अनुपालन बदलना मेरे लिए मुद्दा तय किया। –

-3

प्रोजेक्ट गुणों पर जाएं और पहले वर्तमान जेरे पुस्तकालयों को हटा दें, फिर जेआर लाइब्रेरी को वापस जोड़ें।

11

मैं अगले त्रुटि मिली: पहुँच प्रतिबंध:

प्रकार XmlRegistry आवश्यक पुस्तकालय सी पर प्रतिबंध के कारण सुलभ नहीं है: \ Program Files (x86) \ जावा \ jre7 \ lib \ rt.jar

1.Go to the Build Path settings in the project properties. (Right click on your application, then in the popout window you will see 'Build Path', slide right and click on 'Configure Build Path...') 
2.Remove the JRE System Library 
3.Add it back; Select "Add Library" and select the JRE System Library. 

डिफ़ॉल्ट मेरे लिए काम किया:

इस तरह है कि मैं एक ही समस्या है कि मैं था तय है। परियोजना गुण संवाद के जावा संकलक अनुभाग के लिए गोटो और फिर त्रुटि और चेतावनी -

1:

0

यह स्थिति इस प्रकार हल किया जा सकता। 2 - परियोजना विशिष्ट सेटिंग्स सक्षम करें जांचें। 3 - बहिष्कृत और प्रतिबंधित एपीआई के अंदर चेतावनी या अनदेखा करने के लिए निषिद्ध संदर्भ (एसेस नियम) को बदलें।

4 - कृपया मुझे अपने प्रार्थना

2

बस को हटाने और एक ही JRE प्रणाली पुस्तकालय फिर से जोड़ना में भूल नहीं है।

नोट: 'ओके' पर क्लिक करना सुनिश्चित करें और हटाने और पुनः जोड़ने के दौरान दोनों के लिए संवाद बंद करें।

संबंधित मुद्दे