18

大家好,我在创建 JAXB 解析器时遇到了一个非常奇怪的问题。当我尝试从 Eclipse 生成 JAXB 类时,在一个类中它显示了一个非常奇怪的错误,即

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

这是我的课

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 = new QName("", "expenseReport");

    /**
     * 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);
    }

}
4

4 回答 4

39

当您引用的类路径JRE而不是JDK打开项目的路径时,会发生此问题,做一件事去

构建路径 > 库

删除包含的运行时并添加jdk运行时,它现在应该可以解决您的问题。

于 2012-05-03T09:54:45.677 回答
12

我收到下一个错误:访问限制:

由于所需库 C:\Program Files (x86)\Java\jre7\lib\rt.jar 的限制,无法访问类型 XmlRegistry

这是我解决相同问题的方法:

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. 

默认值对我有用。

于 2014-11-19T16:42:05.553 回答
2

只需删除并重新添加相同的 JRE 系统库。

注意:确保在删除和重新添加时单击“确定”并关闭对话框。

于 2015-09-08T04:21:46.093 回答
0

这种情况可以解决如下:

1 - 转到项目属性对话框的 Java 编译器部分,然后转到错误和警告。2 - 选中启用项目特定设置。3 - 在已弃用和受限 API 内部,将禁止引用(访问规则)更改为警告或忽略。

4 - 请不要在你的祈祷中忘记我

于 2015-05-10T09:11:07.160 回答