使用Activiti流程器点击保存模型报如下错误:

1. 错误信息

Caused by: org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
前言中不允许有内容。
	at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:136)
	at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
	at com.it.cloud.modules.activiti.controller.ActManageController.saveModel(ActManageController.java:119)
	... 79 common frames omitted

2. 原因

后台调试发现svg_xml参数获取到为空字符串,里面还一堆换行符什么的,不是前台传递的xml 字符串。
原因是项目中使用 XssFilter过滤掉了html样式。

3. 解决办法

得到原始请求参数

	HttpServletRequest orgRequest = XssHttpServletRequestWrapper.getOrgRequest(request);
	// 获取正常参数
    // String content = orgRequest.getParameter("svg_xml ");
    // 因为添加了html过滤,直接通过参数得不到html符号(XssFilter)
    // 获取FormData参数
    svgXml = orgRequest.getParameterMap().get("svg_xml")[0];
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐