Package com.soleil.org.apache.xml.interne.de sécurité.utils.Base64 n'existe pas
Je suis à l'aide de NetBeans 7.0.1 et de JDK 1.6 mise à Jour 24 et lors de l'importation du package com.sun.org.apache.xml.internal.security.utils.Base64
pour encoder un hachage de mot de passe:
u.setPassword(Base64.encode(digest(password)));
Lors de la compilation cependant, j'obtiens l'erreur suivante:
(omitted)\RegistrationController.java:8: package com.sun.org.apache.xml.internal.security.utils does not exist
import com.sun.org.apache.xml.internal.security.utils.Base64;
(omitted)\RegistrationController.java:94: cannot find symbol
symbol : variable Base64
location: class RegistrationController
u.setPassword(Base64.encode(digest(password)));
2 errors
J'ai lu plusieurs autres questions sur le même problème, mais tous traitent les paquets qui ne font pas partie du JDK alors que c'est (rt.jar
). Code Assiste fonctionne sur le type et l'expansion de la jarre, révèle à la fois le code source et les binaires sont en effet bien présents.
J'ai essayé de nettoyer le projet, de le reconstruire, de copier les fichiers sources sur un tout nouveau projet d'Entreprise et en cours d'exécution NetBeans en tant qu'Administrateur, en vain. Aucune idée sur comment résoudre ce problème très apprécié!
Merci!
OriginalL'auteur Laurens | 2011-08-18
Vous devez vous connecter pour publier un commentaire.
Comme Greg a souligné dans un commentaire à la auparavant accepté de répondre à:
Puisqu'il est désormais mis en œuvre en tant que partie de la norme API Java, il est probablement préférable de l'utiliser à la place d'Apache Commons Codec. Avec cela à l'esprit, je pense que ce doit être enregistrée comme une réponse.
L'API a un certain nombre de méthodes dans la classe
Base64
pour créer unDécodeur
ouCodeur
. Les types suivants de encodeurs et décodeurs sont pris en charge:De base - Utilise L'Alphabet Base64", comme indiqué dans le Tableau 1 de la norme RFC 4648 et RFC 2045 pour l'encodage et le décodage de l'opération. Le codeur n'a pas ajouter un saut de ligne (séparateur de ligne). Le décodeur rejette les données qui contient des caractères en dehors de l'alphabet base64.
URL et le nom de fichier safe - Utilise l'URL et le nom de fichier en sécurité de l'Alphabet Base64", comme indiqué dans le Tableau 2 de la norme RFC 4648 pour l'encodage et le décodage. Le codeur n'a pas ajouter un saut de ligne (séparateur de ligne). Le décodeur rejette les données qui contient des caractères en dehors de l'alphabet base64.
MIME - Utilise L'Alphabet Base64", comme indiqué dans le Tableau 1 de la norme RFC 2045 pour l'encodage et le décodage de l'opération. L'encodage de sortie doivent être représentés dans les lignes de pas plus de 76 caractères et utilise un retour chariot '\r " suivi immédiatement par un saut de ligne '\n' comme séparateur de ligne. Pas de séparateur de ligne est ajouté à la fin de l'encodage de sortie. Tous les séparateurs ou les autres personnages ne trouve pas dans l'alphabet base64 table sont ignorés dans une opération de décodage.
Ainsi, par exemple, c'est la façon de créer une base de codeur et de l'encodage d'un
byte
tableau:OriginalL'auteur Magnilex
com.soleil.* les classes ne font pas partie de l'API Java, et vous ne devriez pas compter sur eux. Je conseille Apache Commons Codec pour faire de l'encodage Base64 à la place.
com.sun.org.apache.xml.internal.security.utils.Base64
avecorg.apache.commons.codec.binary.Base64;
.Mais il n'y a pas les mêmes méthodes dans les deux? Ne les aide pas dans mon cas 🙁
Note de l'avenir: dans Java 8, il y a un
java.util.Base64
paquet.Quelqu'un peut-il expliquer pourquoi il ces cours sont inclus dans le JDK 1.7 (pour moi: 1.7.0_45) SDK? Cela ressemble à quelqu'un d'avoir fait quelque chose de mal si je peux utiliser certaines classes dans IntelliJ/Netbeans, mais pas dans Maven.
org.apache.xml.security.utils.Base64
est plus fiable que n'importe quelle autre bibliothèque.OriginalL'auteur nojo
Avec
org.apache.commons.codec.binary.Base64
utiliser la méthode spécifique (commeBase64.encodeBase64String()
par exemple) pour remplacerBase64.encode
OriginalL'auteur frederic m