获取批注的时候在本机没有问题,在windows service服务器出现问题。解决方法有两种:
1.原本获取的是getFullMessage,将其修改为getMessage
Comment类不提供getMessage()的方法,只有getFulMessage()方法,但是Comment是个接口类,具体实现是CommentEntity类,CommentEntity类提供了getMessage()方法,将类进行转换后就可以正常获取到了
// 不清楚该方法的Activi版本
List<Comment> list = findCommentByProcessInstanceId(processInstanceId);
for (Comment commentEntity : list) {
CommentEntityImpl comment = null;
if(commentEntity instanceof CommentEntityImpl){
comment = (CommentEntityImpl)commentEntity;
}
String message = comment.getMessage();
// 5.22版本
List<Comment> comment = taskService.getTaskComments(task.getId(), "comment");
if (!CollectionUtils.isEmpty(comment)) {
CommentEntity comment1 = null;
if (comment.get(0) instanceof CommentEntity) {
comment1 = (CommentEntity) comment.get(0);
variables.put("comments", comment1.getMessage());
}
}
2.去解决获取mysql longblob类型的问题,getFullMessage会跟随部署的系统编码,保存到数据库中的bolb字段可能会出现乱码,但是message字段不是乱码,如果审批备注只是文字的话,可以直接取message字段的值。