用户定义的CPI例外

2020-09-12 15:08发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是SAP和CPI的新手。 我在Java和J2EE方面有很好的背景。

我已经在CPI中开发了一个工作流,在该工作流中,我解析XML并检查特定值。 如果该值小于5(例如),那么我将抛出一个自定义消息,异常为"该值小于5。请检查"。 我检索异常消息并将其打印在messageLog中。 工作流按预期工作。

问题是异常消息与Groovy错误一起打印。 似乎没有这种方法。 请查看以下错误:

无方法签名:org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.Exception()适用于参数类型:(java.lang.String)值:[该值小于5。请检查]

我只是期待消息。 我还附加了Groovy脚本

 def消息processData(消息){
 如果(val <5){
     引发异常("该值小于5。请检查")
   }
 }

 def消息logException(消息){
   def exceptionMsg = message.getProperty(" CamelExceptionCaught")
   def messageLog = messageLogFactory.getMessageLog(message)
   messageLog.addAttachmentAsString(" Exception Message",exceptionMsg.getMessage()," text/plain")
   返回讯息
 } 

从错误的外观看,似乎没有带有签名的此类方法。 请让我知道我错了。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是SAP和CPI的新手。 我在Java和J2EE方面有很好的背景。

我已经在CPI中开发了一个工作流,在该工作流中,我解析XML并检查特定值。 如果该值小于5(例如),那么我将抛出一个自定义消息,异常为"该值小于5。请检查"。 我检索异常消息并将其打印在messageLog中。 工作流按预期工作。

问题是异常消息与Groovy错误一起打印。 似乎没有这种方法。 请查看以下错误:

无方法签名:org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.Exception()适用于参数类型:(java.lang.String)值:[该值小于5。请检查]

我只是期待消息。 我还附加了Groovy脚本

 def消息processData(消息){
 如果(val <5){
     引发异常("该值小于5。请检查")
   }
 }

 def消息logException(消息){
   def exceptionMsg = message.getProperty(" CamelExceptionCaught")
   def messageLog = messageLogFactory.getMessageLog(message)
   messageLog.addAttachmentAsString(" Exception Message",exceptionMsg.getMessage()," text/plain")
   返回讯息
 } 

从错误的外观看,似乎没有带有签名的此类方法。 请让我知道我错了。

付费偷看设置
发送
3条回答
微wx笑
1楼 · 2020-09-12 15:44.采纳回答

Hello Ananda,

能否请您尝试在下面的线程中添加代码,并让我知道它是否对您不起作用。

CustomException

问候,

Sriprasad Shivaram Bhat

灬番茄
2楼-- · 2020-09-12 15:24

嗨,斯里普,

感谢您的建议。

将行更改为

引发异常("该值小于5。请检查")

引发新的异常("该值小于5。请检查")

我收到以下错误消息。

java.lang.Exception:java.lang.Exception:该值小于5。请检查script1.groovy中的@ 49行

在Java中,当您调用exception.getMessage()时,您只会收到消息。 但是,它将在脚本中打印异常包名称,消息和行号。 仅供参考,我已经尝试过了并且得到了相同的结果。 我删除了新的运算符,因为我只希望看到异常消息。 CPI正常吗? 这是应该怎么做?

微wx笑
3楼-- · 2020-09-12 15:27

您好,阿南达,

我已经复制了您的方案,这就是从SAP CPI自定义异常角度来看的结果。

异常消息[$ {exception.message}]:javax.script.ScriptException:java.lang.Exception:java.lang.Exception:值小于5。请在script2.groovy中检查@第16行

Exception stacktrace [$ {exception.stacktrace}]:javax.script.ScriptException:java.lang.Exception:java.lang.Exception:值小于5。请在script2.groovy中检查@第16行 在com.sap.gateway.ip.core.customdev.processor.IGWScriptProcessor.process(IGWScriptProcessor.java:264) 在sun.reflect.GeneratedMethodAccessor1117.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408) 在org.apache.camel.component.bean.MethodInfo $ 1.doProceed(MethodInfo.java:279) 在org.apache.camel.component.bean.MethodInfo $ 1.proceed(MethodInfo.java:252) 在org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177) 在org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:95) 在com.sap.it.op.agent.collector.camel.MplInterceptor $ MplAsyncProcessor.process(MplInterceptor.java:195)上……更多72

问候,

Sriprasad Shivaram 巴特

一周热门 更多>