@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		log.debug(TAG + " is invoked");
		String mesg     = request.getParameter("message");
		String friend   = request.getParameter("friend");
		String uid      = request.getParameter("uid");
		String username = qs.getUser(uid).username;
		log.debug(TAG + " mesg is " + mesg);
		if(uid == null) {
			log.error("Error : uid is required");
			responseError(response, "Error : uid is required");
			return;
		}
		if(mesg == null) {
			log.error("Error : message is required");
			responseError(response, "Error : uid is required");
			return;
		}
		if(friend == null) {
			log.error("Error : friend is required");
			responseError(response, "Error : friend is required");
			return;
		}
		MessageResult mr = null;
		Map<String , Object> extra = new HashMap<String, Object>();
		sendId++;
		log.debug("send id = " + sendId);
		extra.put("sendNo", sendId);
		mr = jPushClient.sendCustomMessageWithAlias(sendId, friend, username, mesg, null, extra);
		if(mr == null) {
			log.error("Error : unexcepted null result");
			responseError(response, "Error : unexcepted null result");
			return;
		}else if (mr.getErrcode() != 0) {
			String info = "message result error code : " + mr.getErrcode() +
					" error message : " + mr.getErrmsg() + 
					" sendNo : " + mr.getSendno();
			log.error("Error : " + info + " target is " + friend);
			responseError(response, info);
			return;
		} else {
			log.debug("send ok!!!!!");
			responseSucc(response, "send ok");
		}
	}