76 votes

Restriction d'accès: n'Est pas accessible à cause des restrictions sur la bibliothèque ..\jre\lib\rt.jar

Je suis en train de modifier un code existant depuis tout à l'arrière et d'obtenir suivant la nature des erreurs:

Restriction d'accès: La méthode create(JAXBRIContext, Objet) à partir du type des en-Têtes n'est pas accessible à cause des restrictions sur la bibliothèque ..\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;

Été la recherche de ce que cela signifie et comment résoudre le problème, toutefois pas été en mesure de trouver une réponse claire. Certains postes de penser que j'ai quelques Pots inclus pour mettre en œuvre les classes qui sont maintenant disponibles en tant que partie du noyau de java de la distribution, mais aussi loin que je peux voir aucun des Pots-je inclure contiennent différents/les anciennes versions de classes ci-dessus.

Toute personne en mesure de me dire ce que cette erreur est tout au sujet et comment je pourrais faire pour les fixer?

Merci pour votre aide déjà à l'avance,

Olli

129voto

Alex Points 7396

Je suis tombé sur quelque chose de similaire, je pense que la cause de l'avertissement est Eclipse essayer de vous décourager de l'aide de l'interne com.sun paquets qui sont installés dans le cadre de votre espace de travail JRE, mais qui ne font pas partie du public de l'API Java.

Justin dit dans sa réponse, la modification de vos paramètres de compilateur peut masquer l'avertissement. Une plus fine approche consiste à modifier votre chemin de génération d'autoriser explicitement l'accès à l'application en question:

  1. Ouvrez l'onglet Bibliothèques de Java Build Path du projet fenêtre de propriété.
  2. Développez le JRE Système d'entrée de la Bibliothèque.
  3. Sélectionnez "règles d'Accès" et cliquez sur le bouton Editer.
  4. Cliquez sur le bouton Ajouter dans la boîte de dialogue résultante.
  5. Pour la nouvelle règle d'accès, définissez la résolution Accessible et le modèle de "com/sun/xml/interne/**".

Après l'ajout de cette règle d'accès, votre projet doit construire sans ces mises en garde.

79voto

Abimbola Points 271

Excellente réponse déjà fournir sur place ici.

Voir le résumé ci-dessous:

  1. Aller au Chemin de génération des paramètres dans les propriétés du projet.
  2. Supprimer la JRE System Library
  3. Ajouter, Sélectionnez "Add Library" et sélectionnez le JRE System Library. La valeur par défaut a fonctionné pour moi.

41voto

Justin Points 311

Pas une vraie solution, mais partout où je regardais la solution proposée était tout simplement de dire Eclipse que ceux qui ne sont pas des erreurs. Vous pouvez le modifier en allant dans les Propriétés --> Compilateur Java --> Erreurs Avertissements --> Obsolète et restrited Api --> Interdit de référence (l'accès à la règle), le Modifier à partir d'Erreur ou d'Avertissement Ignorer.

5voto

Val Points 985

J'ai eu le même problème lors de mon plugin a été selon un autre projet, qui a exporté des paquets dans son fichier de manifeste. Au lieu de changer les règles d'accès, j'ai réussi à résoudre le problème en ajoutant les paquets nécessaires à son Export-Package section. Cela rend les paquets légalement visible. Eclipse fournit en fait ce correctif sur la "restriction d'Accès" erreur marqueur.

0voto

lnunno Points 85

Je vais répondre à cette question, car j'avais un autre moyen de résoudre ce problème que les autres réponses avaient. J'ai eu ce problème quand j'ai refait le nom des plugins que j'étais à l'exportation. Finalement, j'ai dû faire en sorte de corriger/modifier le suivant.

  1. Le produit le fichier de dépendances,
  2. L'plugin.xml dépendances (et assurez-vous qu'il n'est pas implicitement importées à l'aide des paquets importés (boîte de dialogue).
  3. La configuration d'exécution onglet plugins. Exécuter en tant Qu'..->Run Configurations->onglet Plugins. Décochez la vieille plugins, puis cliquez sur Ajouter des Plugins.

Cela a fonctionné pour moi, mais votre kilométrage peut varier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X