如何捕获在Alfresco的Activiti 6中发送电子邮件时发生的错误?

问题描述 投票:2回答:1

我需要发送电子邮件,并且我使用service task

<serviceTask id="SendEmail_1" name="Sending a notification by email" activiti:type="mail">
  <documentation></documentation>
  <extensionElements>
    <activiti:field name="to">
      <activiti:expression><![CDATA[${to}]]></activiti:expression>
    </activiti:field>
    <activiti:field name="subject">
      <activiti:expression><![CDATA[${subject}]]></activiti:expression>
    </activiti:field>
    <activiti:field name="text">
      <activiti:expression><![CDATA[${body}]]></activiti:expression>
    </activiti:field>
    <activiti:field name="ignoreException">
      <activiti:string><![CDATA[true]]></activiti:string>
    </activiti:field>
    <activiti:field name="charset">
      <activiti:string><![CDATA[utf8]]></activiti:string>
    </activiti:field>
  </extensionElements>
</serviceTask>

我还需要捕获发送邮件时发生的错误。在用户指南中,我读到为了获得对错误的描述,您需要从过程变量中读取变量“ exceptionVariableName”的值。如您在上面看到的,我将其添加到服务任务中,但是到目前为止,我还没有看到它起作用。我试图给他不存在的收件人地址,但是没有错误。还能用吗?什么时候起作用?还是有另一种获取错误描述的机制?

PS我使用Activiti 6.0.0。

PSS我试图在“ extensionElements”标签中添加以下块:

<activiti:field name="exceptionVariableName">
  <activiti:string><![CDATA[error]]></activiti:string>
</activiti:field>

而且它也没有帮助我(例如,如果收件人不正确)。

[PSSS,我在创建进程配置Bean时指定了错误的smtp服务器主机,并且得到了错误描述(下面显示了用于接收它的Java代码),但是它没有信息。

public void logEmailSending(DelegateExecution execution) {
    Object error = execution.getVariable("error");
    if (error != null)
        logger.error("An error occurred while sending the email: " + error);
}

它几乎解决了我的问题,但是,正如我在上面写的,我想更具体地讲,但仍然不能在收件人的地址中发现错误

java email error-handling alfresco activiti
1个回答
0
投票

我们在Activiti BPM 6.0.0]中碰到了同一堵墙。我们通过以下步骤解决了我们的问题。

© www.soinside.com 2019 - 2024. All rights reserved.