点击此处---> 群内免费提供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") 返回讯息 }
从错误的外观看,似乎没有带有签名的此类方法。 请让我知道我错了。
Hello Ananda,
能否请您尝试在下面的线程中添加代码,并让我知道它是否对您不起作用。
CustomException
问候,
Sriprasad Shivaram Bhat
嗨,斯里普,
感谢您的建议。
将行更改为
到
我收到以下错误消息。
java.lang.Exception:java.lang.Exception:该值小于5。请检查script1.groovy中的@ 49行
在Java中,当您调用exception.getMessage()时,您只会收到消息。 但是,它将在脚本中打印异常包名称,消息和行号。 仅供参考,我已经尝试过了并且得到了相同的结果。 我删除了新的运算符,因为我只希望看到异常消息。 CPI正常吗? 这是应该怎么做?
您好,阿南达,
我已经复制了您的方案,这就是从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 巴特
一周热门 更多>