You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

转Java代码到ColdFusion遇Hex未定义错误,如何创建Hex对象?

解决ColdFusion中"Variable HEX is undefined"错误

错误原因是你直接引用的Hex类属于Apache Commons Codec库,ColdFusion没有自动导入该类,必须通过createObject显式调用。

修复说明:

  • ColdFusion默认已内置Apache Commons Codec的jar包,无需额外引入
  • 通过createObject('java', 'org.apache.commons.codec.binary.Hex')获取Hex类对象,再调用其静态方法encodeHexString

修改后的完整代码:

<cfset input='{"id":7,"attempts":1,"notifications":[{"action":"UPDATE","message":{"id":0,"sender":"","body":"{\"TableId\":930002,\"TableName\":\"DEMOGRAPHIC\",\"TableAction\":\"UPDATE\"}"}}]}'>

<cfset key = "xxxx">

<cfscript>
secret = createObject('java', 'javax.crypto.spec.SecretKeySpec').Init(key.GetBytes("UTF-8"), 'HmacSHA256');
mac = createObject('java', "javax.crypto.Mac");
mac = mac.getInstance("HmacSHA256");
mac.init(secret);
// 显式创建Hex类对象并调用静态方法
hex = createObject('java', 'org.apache.commons.codec.binary.Hex');
digest = hex.encodeHexString(mac.doFinal(input.GetBytes("UTF-8")));
</cfscript>

额外提示:原输入字符串中body字段内的JSON双引号未正确转义,已在代码中修正为\",避免后续JSON解析时出现错误。

内容的提问来源于stack exchange,提问作者gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:31:20