activiti 启动tomcat乱码_关于activiti-explorer.war 5.17版本中文乱码的解决方法

博客围绕Activiti启动Tomcat时中文乱码问题展开。尝试通过配置文件、特定方法解决均未成功,最终直接修改activiti-engine-5.17.0.jar和activiti-explorer-5.17.0.jar中的两个类文件,编译覆盖后重新部署启动,成功解决乱码,但此为临时方案。

中文乱码主要表现在绘制模型,部署流程定义的时候出现乱码。一开始尝试通过配置文件来解决乱码问题,工程下有一个activiti-custom-context.xml(话说这个好像是5.17版本才有的,配置文件变化还挺大的),按官方说法,是作为自定义配置用的,里面有注释起来的demo,尝试添加配置如下所示:

通过属性注入方式修改字体。ProcessEngineConfiguration源码中存在两个属性字段:

protected String activityFontName = "Arial";

protected String labelFontName = "Arial";

启动tomcat,一开始用tomcat6 ,发现启动都失败了,后来网上有人说要用tomcat7,果断换上tomcat7,启动,没报错,不过还是没解决中文乱码问题

然后尝试了此方法:http://www.mossle.com/ask/question.do?id=3 ,还是不行

,可能是针对5.17之前的版本有效吧,还是我哪里操作不对了?放弃再找解决方案了,决定直接修改源码

。  总共需修改两个类文件,activiti-engine-5.17.0.jar中的ProcessEngineConfiguration和activiti-explorer-5.17.0.jar中的EditorProcessDefinitionDetailPanel,具体修改如下:

ProcessEngineConfiguration.java

protected String activityFontName = "Arial";

protected String labelFontName = "Arial";改为

protected String activityFontName = "宋体";

protected String labelFontName = "宋体";

EditorProcessDefinitionDetailPanel.java中的deployModelerModel方法改成如下所示,加了utf-8

protected void deployModelerModel(final ObjectNode modelNode) {

BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);

byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model);

String processName = modelData.getName() + ".bpmn20.xml";

Deployment deployment;

try {

deployment = repositoryService.createDeployment().name(modelData.getName())

.addString(processName, new String(bpmnBytes,"utf-8"))//加utf-8

.deploy();

ExplorerApp.get().getViewManager().showDeploymentPage(deployment.getId());

}catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch

}

}

编译,覆盖原来的类,重新部署启动,测试,成功解决乱码问题。这种做法不太建议使用,应该还有其他方法可以解决,暂时没找到,此做法作为临时解决方案。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值