Alfresco异常消息格式

时间:2012-06-12 07:02:07

标签: exception alfresco

我只想显示露天工作流程异常的消息。但在露天异常消息格式中就是这样  的 1。 exception.class.name  2. ErrorLogNumber  3.消息

例如, org.alfresco.service.cmr.workflow.WorkflowException:05130007 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我只想显示3.Message而不是1.exception.class.name和2.ErrorLogNumber。我可以通过添加自定义异常类从消息中删除ErrorLogNumber。但是我无法从错误消息中删除1.exception.class.name。 让我知道如何实现这一点。

3 个答案:

答案 0 :(得分:1)

解决方案非常简单。只需将throw new AlfrescoRuntimeException("your.message"); 与您的邮件一起投放。

        onFormSubmitFailure: function FormManager_onFormSubmitFailure(response)
        {
           var failureMsg = null;
           if (response.json && response.json.message && response.json.message.indexOf("Failed to persist field 'prop_cm_name'") !== -1)
           {
                failureMsg = this.msg("message.details.failure.name");
           }
           else if (response.json && response.json.message && response.json.message.indexOf("PropertyValueSizeIsMoreMaxLengthException") !== -1)
           {
                failureMsg = this.msg("message.details.failure.more.max.length");
           }
           else if (response.json && response.json.message && response.json.message.indexOf("org.alfresco.error.AlfrescoRuntimeException") == 0)
           {  
              var split =  response.json.message.split(/(?:org.alfresco.error.AlfrescoRuntimeException:\s*\d*\s*)/ig);
              if (split && split[1])
              {
                    failureMsg = split[1];
              }
           }
           Alfresco.util.PopupManager.displayPrompt(
           {
              title: this.msg(this.options.failureMessageKey),
              text: failureMsg ? failureMsg : (response.json && response.json.message ? response.json.message : this.msg("message.details.failure"))
           });
        },

在这种情况下,您会收到一条消息,但是松散的异常子类型。

在alfresco javaScript代码中看到异常处理时,我很难用语言解释我是多么惊讶:

alfresco.js

正如您所看到的,他们从java中“捕获”类名并将其替换为message。我希望他们提供更多可扩展的方法来处理客户异常。

P.S。当然,另一种方法是扩展if else文件,并为您的例外添加一个{{1}}条件。

答案 1 :(得分:0)

您是否尝试在异常类中覆盖toString?或者如果以这种方式打印输出,可能会更改记录器实现。

答案 2 :(得分:0)

我遇到了类似的问题,即使使用调试器也无法跟踪创建此消息的位置,非常棘手。此外,Alfresco论坛上的任何人都无法帮助我。 我开发了一个解决方法而不是直接在java工作流任务中抛出异常,我在表单中使用了JS验证(我在另一篇文章中告诉你的方式),在那里我使用ajax调用了一个java webscript,在出现错误的情况下显示JS警报框。