当前位置: 首页 > 面试题库 >

软件包com.sun.org.apache.xml.internal.security.utils.Base64不存在

沃瑾瑜
2023-03-14
问题内容

我正在使用NetBeans 7.0.1和JDK 1.6 Update
24,并且在导入软件包com.sun.org.apache.xml.internal.security.utils.Base64以编码密码哈希值时使用:

u.setPassword(Base64.encode(digest(password)));

但是,在编译时,出现以下错误:

(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

我已经阅读了关于同一问题的其他几个问题,但是所有问题都与JDK无关,而这些软件包是(rt.jar)。Code
Assists在类型上起作用,展开jar会显示实际上也存在源代码和二进制文件。

我曾尝试清理项目,重建项目,将源文件复制到全新的Enterprise项目中,然后以管理员身份运行NetBeans,但无济于事。任何有关如何解决此问题的线索,我们将不胜感激!

谢谢!


问题答案:

正如Greg的评论中指出的那样:

未来的注意事项:在Java 8中,有一个java.util.Base64程序包。

由于现在已将其实现为标准Java API的一部分,因此最好使用它代替Apache Commons Codec。考虑到这一点,我认为这应该作为答案发布。

API在类中有许多方法Base64来创建Decoderor
Encoder。支持以下类型的编码器和解码器:

  • 基本 -使用RFC 4648和RFC 2045表1中指定的“ Base64字母”进行编码和解码操作。编码器不添加任何换行符(换行符)。解码器拒绝包含base64字母之外的字符的数据。

  • URL和文件名安全 -使用RFC 4648表2中指定的“ URL和文件名安全Base64字母”进行编码和解码。编码器不添加任何换行符(换行符)。解码器拒绝包含base64字母之外的字符的数据。

  • MIME- 使用RFC 2045表1中指定的“ Base64字母”进行编码和解码操作。编码后的输出必须以不超过76个字符的行表示,并使用回车符’\ r’和紧跟换行符’\ n’作为行分隔符。没有行分隔符添加到编码的输出的末尾。在base64字母表中找不到的所有行分隔符或其他字符在解码操作中将被忽略。

因此,例如,这是创建基本编码器并编码byte数组的方法:

byte[] encodedArray = Base64.getEncoder().encode(someArrayToEncode);


 类似资料:
  • 在我的服务中,我想使用类来创建一个JSON对象。为此,我导入了包并保存了它,但当我运行该项目时,会出现以下错误: 错误:包org.codehaus.jettison.json不存在 [javac]导入org.codehaus.jettison.json.JSONException;* 这是我的密码

  • 问题内容: 当我编译具有以下2个import语句的简单代码时: 我收到以下消息: 为什么会出现此错误? 这是我的代码: 问题答案: 您需要下载JavaMail API ,并将相关的jar文件放入您的类路径中。

  • 问题内容: 所以在根目录下有一个文件夹 在东西中,有一堆带有定义的Java文件 我正在那里是一个子域 我已添加 到班级路径中。 在我的顶部添加 但是我得到一个错误…为什么? 问题答案: 它们在正确的子目录中吗? 如果放置在类路径上,则使用定义的文件应位于中。 编辑 :如果您还不知道这一点,则可能应该阅读以下内容:http : //download.oracle.com/javase/1.5.0/d

  • 问题内容: 我如何检查Java安装中是否存在像javax.servlet。*这样的包? 问题答案: Java只能告诉您是否可以加载类。它不能告诉您是否存在软件包,因为没有加载软件包,只有类。 唯一的方法是尝试从该包中加载类。例如,对于javax.servlet。*,您可以执行以下操作:

  • Tazpkg - 软件包管理器 Slitaz提供一个小型软件包管理器,它能轻易在系统里安装许多软件。Tazpkg是一个由SHell脚本写的轻量级的软件包管理器,能安 装.tazpkg文件。它能在Busybox、ash shell和bash中正常运行。Tazpkg可以让你列出软件包列表、安装软件包、删除软件包、下载软件包、解压软件包、打包软件包、查找软件包或者取 得有关可用软件包或所有已安装软件包的

  • 问题内容: 我正在使用Eclipse,并且有一段时间没有使用Java了。但是,我可以在命令行上编译我的代码,并生成必要的文件。在Eclipse中,它抱怨。这是什么意思,我该如何解决? 样例代码: 我的项目的名称是。 问题答案: Eclipse希望声明的包与目录层次结构匹配-因此,它希望Java文件位于源根目录下的“ Devices”目录中。目前,该文件似乎直接位于您的源根目录中。因此,创建适当的目