2012-05-03 30 views
16

hi folks Tôi gặp phải một điều rất lạ khi tạo trình phân tích cú pháp JAXB của mình. Khi tôi đã cố gắng để tạo ra các lớp JAXB từ nhật thực sau đó trong một lớp nó cho thấy một lỗi rất lạ đó làHạn chế truy cập trên 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 

đây là lớp học của tôi

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 { 

VÀ ĐÂY ON LINE NÀY Tôi nhận được thông báo lỗi

riêng cuối cùng tĩnh QName _ExpenseReport_QNAME = new QName ("", "costReport");

/** 
    * 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

Có thể có liên quan: http://stackoverflow.com/questions/860187/access-restriction-on-class-due-to-restriction-on-required-library-rt-jar – assylias

+0

Cảm ơn - nó sẽ hữu ích cho tôi :) – khan

Trả lời

37

Vấn đề này xảy ra khi bạn lớp con đường là đề cập đến JRE thay vì JDK trong đó Dự án mở cửa vào, làm một việc đi đến

Build Path > Libraries

Tháo Runtime được bao gồm và thêm thời gian chạy jdk, nó sẽ giải quyết vấn đề của bạn ngay bây giờ.

+6

Tôi đã gặp phải sự cố này khi sử dụng plugin maven-jaxb2 với Maven/JAXB/m2e/Eclipse. Eclipse đã sử dụng Java 1.5, vì vậy tôi đã thêm trình biên dịch-maven-plugin để thiết lập các phiên bản nguồn và đích của tôi thành 1.7 và mọi thứ đều tốt. –

+0

Tôi nghĩ rằng @NathanielWaisbrot là chính xác (ít nhất là trong một số trường hợp). Tôi đã có cùng một vấn đề, nhưng WS bằng cách sử dụng JDK. Thiết lập plugin maven cho Java 1.7 thay vì 1,5 thứ cố định cho tôi. – jedison

+0

Trong java 8, tôi gặp lỗi tương tự khi khởi tạo com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem(); Thay đổi tuân thủ java với 1,5 đã khắc phục vấn đề cho tôi. –

-3

Chuyển đến thuộc tính dự án và trước tiên xóa các thư viện jre hiện tại, sau đó thêm lại thư viện jre.

11

Tôi đã nhận lỗi sau: hạn chế truy cập:

Loại XmlRegistry không truy cập được do hạn chế về yêu cầu thư viện C: \ Program Files (x86) \ Java \ jre7 \ lib \ rt.jar

Đây là cách mà tôi đã khắc phục cùng một vấn đề mà tôi có:

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. 

Giá trị mặc định làm việc cho tôi.

0

Tình trạng này có thể được giải quyết như sau:

1 - Chuyển sang phần Java Compiler của hộp thoại Project Properties và sau đó lỗi và cảnh báo. 2 - Chọn Bật cài đặt cụ thể của dự án. 3 - Bên trong API không được chấp nhận và bị hạn chế thay đổi tham chiếu bị cấm (quy tắc acess) thành Cảnh báo hoặc Bỏ qua.

4 - Xin đừng quên tôi trong cầu nguyện của bạn

2

Chỉ cần xóa và thêm lại cùng một thư viện hệ thống JRE.

Lưu ý: Đảm bảo nhấp vào 'OK' và đóng hộp thoại cho cả hai trong khi xóa và thêm lại.

Các vấn đề liên quan