salut les gens j'ai fait face à un très étrange lors de la création de mon analyseur JAXB. Quand j’ai essayé de générer des classes JAXB à partir d’Eclipse, alors dans une classe, il affiche une erreur très étrange qui est
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
c'est ma classe
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 {
ET ICI SUR CETTE LIGNE, JE REÇOIS LE MESSAGE D'ERREUR
nom d'utilisateur final statique final final _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);
}
}
Ce problème se produit lorsque votre chemin de classe fait référence à JRE
au lieu de JDK
dans lequel le projet est ouvert, effectuez une opération dans
Chemin de construction> Bibliothèques
Supprimez le runtime inclus et ajoutez le runtime jdk
, cela devrait résoudre votre problème maintenant.
J'ai l'erreur suivante: restriction d'accès:
Le type XmlRegistry n'est pas accessible en raison d'une restriction sur la bibliothèque requise C:\Program Files (x86)\Java\jre7\lib\rt.jar
C'est la façon dont j'ai résolu le même problème que j'ai eu:
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.
Le défaut a fonctionné pour moi.
Il suffit de supprimer et d'ajouter de nouveau la même bibliothèque système JRE.
Remarque: assurez-vous de cliquer sur 'OK' et de fermer la boîte de dialogue pour les supprimer et les rajouter.
Cette situation peut être résolue comme suit:
1 - Accédez à la section Compilateur Java de la boîte de dialogue Propriétés du projet, puis à Erreurs et avertissements . 2 - Cochez Activer les paramètres spécifiques au projet . 3 - Dans une API obsolète et restreinte, remplacez la référence Interdit (règle d'accès) par Avertissement. ou ignorer.
4 - S'il vous plaît ne m'oubliez pas dans votre prière