J'essaie de modifier certains codes hérités depuis un certain temps et d'obtenir le type d'erreur suivant:
Restriction d'accès: La méthode create (JAXBRIContext, Object) à partir du type En-têtes n'est pas accessible en raison d'une restriction sur la bibliothèque requise.\Jre\lib\rt.jar
pour ces déclarations d'importation:
import com.Sun.xml.internal.bind.api.JAXBRIContext;
import com.Sun.xml.internal.ws.api.message.Header;
import com.Sun.xml.internal.ws.api.message.Headers;
import com.Sun.xml.internal.ws.developer.WSBindingProvider;
Je cherchais ce que cela pourrait vouloir dire et comment le réparer, mais je n’ai pas pu trouver de réponse claire. Certaines publications semblent suggérer que certains JARs implémentés implémentent des classes qui sont maintenant disponibles dans le cadre de la distribution de base Java), mais aucun de ces JARs ne contient/anciennes versions des classes ci-dessus.
Quelqu'un peut-il me dire en quoi consiste cette erreur et comment y remédier?
Merci pour votre aide déjà à l'avance,
Olli
J'ai rencontré quelque chose de similaire, je pense que la raison de l'avertissement est Eclipse qui essaie de vous décourager d'utiliser les packages internes com.Sun
Installés dans le cadre de votre espace de travail JRE mais qui ne font pas partie du public Java API.
Comme Justin le dit dans sa réponse, la modification des paramètres de votre compilateur peut masquer l’avertissement. Une approche plus fine consiste à modifier votre chemin de construction pour autoriser explicitement l'accès au paquet en question:
"com/Sun/xml/internal/**"
.Après avoir ajouté cette règle d'accès, votre projet doit être construit sans ces avertissements.
Excellente réponse déjà fournie sur place ici .
Voir le résumé ci-dessous:
Pas une vraie solution, mais partout où j'ai regardé, la solution suggérée était simplement de dire à Eclipse que ce ne sont pas des erreurs. Vous pouvez le changer en allant dans Propriétés -> Java Compilateur -> Avertissements concernant les erreurs -> API obsolètes et remises en réserve -> Référence interdite (règle d'accès), Modifiez-le d'erreur en avertissement ou ignorer.
j'ai résolu ce problème en procédant comme suit: développez votre projet, cliquez avec le bouton droit de la souris sur "Bibliothèque système JRE"> Propriétés> choisissez la troisième option "JRE par défaut de l'espace de travail"> OK. J'espère que ça vous aidera aussi
Dans Eclipse:Project -> properties -> Java Build Path -> libraries
Supprimer la bibliothèque système JRE existante, puis Add Library -> JRE System library -> next -> ok
L'erreur sera supprimée.
J'ai eu le même problème quand mon plugin dépendait d'un autre projet, qui exportait des paquetages dans son fichier manifeste. Au lieu de changer les règles d'accès, j'ai réussi à résoudre le problème en ajoutant les packages requis dans sa section Export-Package. Cela rend les colis légalement visibles. Eclipse fournit en fait ce correctif sur le marqueur d'erreur "Restriction d'accès".
Dans l'environnement Eclipse où vous exécutez vos programmes Java, procédez comme suit:
Je réponds à cette question parce que j'avais une manière de résoudre ce problème différente de celle des autres réponses. J'ai eu ce problème quand j'ai refactored le nom des plugins que j'exportais. Finalement, je devais m'assurer de corriger/changer ce qui suit.
Cela a fonctionné pour moi, mais votre kilométrage peut varier.
Je viens de changer la facette du projet en 1.7 et cela a fonctionné.