错误常规拆分器序列失败0

2020-08-24 08:41发布

         点击此处--->   EasySAP.com群内免费提供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)

         点击此处--->   EasySAP.com群内免费提供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)
付费偷看设置
发送
2条回答
callcenter油条
1楼-- · 2020-08-24 09:20

可能找不到+ rp + erty" app_key"或未填充任何值(保持为空)

 map = message.getProperties();
     def appKey = map.get(" app_key"); 
半个程序猿
2楼-- · 2020-08-24 09:07

解决了问题

非常感谢

一周热门 更多>