18

こんにちは皆さん、JAXB パーサーを作成しているときに、非常に奇妙なことに直面しました。Eclipse から JAXB クラスを生成しようとすると、1 つのクラスで非常に奇妙なエラーが表示されます。

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 {

そして、ここでこの行にエラーメッセージが表示されます

private final static 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 に答える