点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
需要帮助
我在成功因素之后添加了通用拆分器,并发现了此错误
org.apache.camel.CamelExchangeException:数字0的顺序处理失败。Exchange [ID-vsa7243618-42121-1579299367455-2616-6]。 由以下原因引起:[org.apache.camel.CamelExchangeException-数字1的顺序处理失败。Exchange [ID-vsa7243618-42121-1579299367455-2616-10]。 由以下原因引起:[javax.script.ScriptException-java.lang.Exception:java.lang.NullPointerException:无法在script3.groovy的null object @第30行上调用方法getBytes()]],原因:java.lang.NullPointerException:无法 在空对象上调用方法getBytes()
有什么想法吗?这是我的设计
这是我从中获得的数据 成功因素
<?xml版本=" 1.0"编码=" utf-8"?>,这是我的一般分配器提供的信息cust_TransactionWallet2 https://api10preview.sapsf.com:443/odata/v2/cust_TransactionWallet2 2020-01-31T12:51:34Z https://api10preview.sapsf.com :443/odata/v2/cust_TransactionWallet2(effectiveStartDate = datetime'2020-01-31T00:00:00',externalCode ='00115373',transactionSequence = 9L) 2020-01-31T12:51:34Z <类别 term =" SFOData.cust_TransactionWallet2" scheme =" http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"> <内容类型=" application/xml"> 00115373 2020-01-31T00:00:00 9 00115373192 GRB050 axxx@xxx.com 1 white cream2 001153734192 085810089
这是我的脚本BuildSignature
/* 集成开发人员需要创建方法processData 该方法采用包com.sap.gateway.ip.core.customdev.util的Message对象。 其中包括对内容开发者有用的帮助方法: 可用的方法有: 公共java.lang.Object getBody() 公共无效setBody(java.lang.Object exchangeBody) 公共java.util.Map谢谢getHeaders() 公共无效setHeaders(java.util.Map exchangeHeaders) public void setHeader(java.lang.String名称,java.lang.Object值) 公共java.util.Map getProperties() 公共无效setProperties(java.util.Map exchangeProperties) public void setProperty(java.lang.String名称,java.lang.Object值) 公共java.util.List getSoapHeaders() 公共无效setSoapHeaders(java.util.List soapHeaders) 公共无效clearSoapHeaders() */ 导入com.sap.gateway.ip.core.customdev.util.Message; 导入java.util.HashMap; 导入groovy.json。*; 导入javax.crypto.Mac; 导入javax.crypto.spec.SecretKeySpec; 导入java.security.InvalidKeyException; 导入java.security.MessageDigest 导入java.security.NoSuchAlgorithmException; def hmac_sha256(字符串secretKey,字符串数据){ 尝试{ Mac mac = Mac.getInstance(" HmacSHA256"); SecretKeySpec secretKeySpec =新的SecretKeySpec(secretKey.getBytes()," HmacSHA256"); mac.init(secretKeySpec); byte []摘要= mac.doFinal(data.getBytes()); 返回摘要 } catch(InvalidKeyException e){ 抛出新的RuntimeException("转换为HMac SHA256时无效的键异常"); } } def消息processData(消息消息){ //属性 map = message.getProperties(); def appKey = map.get(" app_key"); //身体 def正文= message.getBody(String.class); def md5 =''; body = body.replaceAll(" \ r"," \\ r"); body = body.replaceAll(" \ n"," \\ n"); message.setProperty(" oldBody",body); md5 = MessageDigest.getInstance(" MD5")。digest(body.bytes).encodeHex()。toString(); def毫秒= System.currentTimeMillis(); def secretKey =" post-" + md5 +"-" +毫秒+"-/api/v1/orders/openorder"; message.setProperty(" secretKey",secretKey); def hash = hmac_sha256(appKey,secretKey); def encodeData = hash.encodeBase64()。toString(); message.setBody(""); message.setHeader("毫秒",毫秒); message.setHeader(" signature",encodeData); 返回消息; }
(34.6 kB)
可能找不到+ rp + erty" app_key"或未填充任何值(保持为空)
解决了问题
非常感谢
一周热门 更多>