kettle数据清洗操作时,
生成随机数转换项目,
生成一组MD5信息授权码,
在快速启动时,出现下列报错!!希望能指导一下!!
2023/03/03 00:12:42 - 转换 1 - 为了转换解除补丁开始 [转换 1]
2023/03/03 00:12:42 - 生成随机数.0 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : 错误初始化步骤[生成随机数]
2023/03/03 00:12:42 - 生成随机数.0 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.JceSecurity
2023/03/03 00:12:42 - 生成随机数.0 - at java.base/javax.crypto.KeyGenerator.nextSpi(KeyGenerator.java:362)
2023/03/03 00:12:42 - 生成随机数.0 - at java.base/javax.crypto.KeyGenerator.(KeyGenerator.java:175)
2023/03/03 00:12:42 - 生成随机数.0 - at java.base/javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:243)
2023/03/03 00:12:42 - 生成随机数.0 - at org.pentaho.di.trans.steps.randomvalue.RandomValue.init(RandomValue.java:231)
2023/03/03 00:12:42 - 生成随机数.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69)
2023/03/03 00:12:42 - 生成随机数.0 - at java.base/java.lang.Thread.run(Thread.java:833)
2023/03/03 00:12:42 - 转换 1 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : 步骤 [生成随机数.0] 初始化失败!
这个错误的原因可能是缺少加密相关的JCE(Java Cryptography Extension)安全文件,导致无法使用生成随机数和生成MD5授权码的转换。可以尝试在运行Kettle之前,将JCE相关的jar包放置到JRE的lib/security目录下,覆盖原有的文件,然后重新启动Kettle即可解决此问题。另外,也可以检查一下系统环境变量中是否设置了JAVA_HOME,以及JAVA_HOME下是否包含了JCE相关的jar包。
参考GPT和自己的思路,这个错误信息显示是缺少 javax.crypto.JceSecurity 类,可能是由于安全性配置或库缺失导致的。
可以尝试以下解决方法:
1 检查JRE是否存在缺失或损坏的文件,尝试重新安装或更新JRE。
2 检查Java安全性策略文件是否存在问题,尝试删除或重新安装Java安全性策略文件。
3 检查Kettle的lib目录下是否缺少所需的Java库文件,如果缺失可以尝试从JRE中复制相关的库文件到Kettle的lib目录下。
4 尝试在Kettle的启动脚本中添加Java安全选项,例如:
-Djava.security.policy=path/to/java.policy
这些解决方法中,建议先尝试更新或重新安装JRE,如果还是无法解决,再尝试其他方法。
你好,你在使用Kettle生成随机数报的错误java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.JceSecurity,意识是表示没有找到相关的类,导致无法初始化 javax.crypto.JceSecurity这个对象。说明您在生成随机数时,没有正确加载到这j个ar包。建议您:
1、Kettle关闭掉,然后右键以管理员身份运行下,在生成随机数看看
2、可能依赖您电脑上的java环境,检查下你电脑上的java环境是否正确。包括您的java版本和Kettle所要求的是否匹配,这主要是jdk和Kettle用到的jar版本的匹配问题。你看下你电脑上的jdk版本是多少,比如是1.6,那你升级下到1.7看看。
3、看下您的java jre下面是否有以下两个文件,没有的话,下载添加下看看:
JRE/lib/security/local_policy.jar
JRE/lib/security/US_export_policy.jar
4、可能您的kettle有问题,没有安装正确或者安装包本身有问题,导致安装后缺少相关依赖包,建议卸载重装,如果不行,最好换一个安装包。
你把全部运行日志发给我
在Kettle中生成随机数和MD5信息授权码的转换项目通常是使用JavaScript脚本来实现的。如果在快速启动时出现报错,可能是由于以下原因导致的:
JavaScript脚本语法错误:请检查JavaScript脚本的语法是否正确,是否存在语法错误。可以使用Kettle自带的JavaScript编辑器来检查语法错误,并进行修正。
Kettle版本不兼容:如果使用的Kettle版本与JavaScript脚本不兼容,可能会导致快速启动时出现报错。请检查Kettle版本是否与JavaScript脚本版本兼容,并进行升级或降级。
环境变量配置问题:如果在JavaScript脚本中使用了系统环境变量,但是环境变量未配置或配置不正确,可能会导致快速启动时出现报错。请检查环境变量配置是否正确,并进行修正。
数据源连接问题:如果JavaScript脚本中涉及到数据源连接,但是数据源连接失败或连接信息不正确,可能会导致快速启动时出现报错。请检查数据源连接是否正确,并进行修正。
其他原因:如果以上方法都无法解决问题,请提供具体的报错信息和环境信息,以便更好地定位和解决问题。同时,也可以尝试重新安装Kettle或者使用其他数据清洗工具来实现该功能。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个报错是因为Kettle缺少javax.crypto.JceSecurity类。建议您检查以下内容:
1.您的Java版本是否支持此类;
2.检查您是否缺少所需的jar包。您可以尝试查看Kettle目录的libext文件夹和libswt文件夹以查找所需的jar包;
3.您还可以检查您的Java安装是否完全正确。您可以重新安装Java并重试。
此外,您也可以尝试在Kettle类型设置中设置最高级别的Java版本,并在高级设置中添加所需的库。
关于代码问题,您并没有提供任何代码,因此无法判断问题出在哪里,或者是否与上述报错有关。可以尝试检查MD5信息授权码生成的方法是否正确实现,以及是否缺少任何相关的库。
希望这些提示可以帮助您解决问题。
如果我的回答解决了您的问题,请采纳!
正常运行一会突然报错:Communications link failure
错误一:
java.net.SocketException: Connection reset by peer: socket write error
错误二:
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.
产生上述两个错误的原因:可能是kettle默认使用的是服务端提供的statement,因为一些原因服务端可能会关闭statement,因此要对连接的数据库设置一些参数,使用kettle自身提供的statement就可以
(1)解决问题:设置参数如下:
useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true