@Override public String execute(HttpServletRequest request, JSONObject requestJson) throws JMSException, WeChatException, ConnectionFailedException, AccessTokenException, UnsupportedEncodingException, GasSafeException { super.execute(request, requestJson); String respXml = null; // 发送方帐号 String fromUserName = requestJson.getString(Event.FROM_USER_NAME); // 开发者微信号 String toUserName = requestJson.getString(Event.TO_USER_NAME); String content = requestJson.getString("Content").trim().toUpperCase(); String queryCmd = null; String queryType = null; String regQueryCmd = "^\\" + Query.SEPARATOR + "([^" + Query.SEPARATOR + "]+)\\" + Query.SEPARATOR; Pattern p = Pattern.compile(regQueryCmd); Matcher m = p.matcher(content); while (m.find()) { queryCmd = m.group(1); queryType = QUERY_CMD_TYPE.get(queryCmd); } TextMessage message = new TextMessage(); message.setToUserName(fromUserName); message.setFromUserName(toUserName); message.setCreateTime(new Date().getTime()); message.setMsgType(MessageService.RESP_MESSAGE_TYPE_TEXT); if (null != queryType) { StringBuffer buffer = new StringBuffer(); // 将搜索字符及后面的+、空格、-等特殊符号去掉 String keyWord = content.replaceAll( "^" + Query.SEPARATOR + queryCmd + Query.SEPARATOR + Query.QUERY_LIST + Query.SEPARATOR + "[\\+ ~!@#%^-_=]?", ""); Map<String, String> params = new HashMap<String, String>(); params.put("uName", keyWord); params.put("qyType", queryType); String response = GasHttpClientUtil.gasPost( "ccstWeChatGetDWList.htm", params, CharEncoding.UTF_8, fromUserName); if (SocketFailCode.ERR_CODE_LENGTH == response.length()) { buffer.append("系统请求socket出现异常:").append(response); } else { CompanyListResMsg retMsg = new CompanyListResMsg(); JSONObject object = JSONObject.fromObject(response); if (0 != (int) object.get(WebSocketResFiled.ERROR_CODE)) { buffer.append("系统请求socket出现异常:").append(object.get(WebSocketResFiled.ERROR_CODE)); } else { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setRootClass(CompanyListResMsg.class); Map<String, Class> classMap = new HashMap<String, Class>(); classMap.put("result", CompanyListResult.class); jsonConfig.setClassMap(classMap); retMsg = (CompanyListResMsg) JSONObject.toBean(object, jsonConfig); buffer.append("单位列表:").append(Const.LINE_SEPARATOR); buffer.append(Const.LINE_SEPARATOR); for (int i = 0; i < retMsg.getResult().size(); i++) { buffer .append(i + 1 + "." + retMsg.getResult().get(i).getUnitName()) .append(Const.LINE_SEPARATOR); } } } message.setContent(buffer.toString()); } else { message.setContent("输入有误! "); } // 将消息对象转换成xml respXml = MessageService.messageToXml(message); return respXml; }