MessageUtil.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.nokia.esb;
  2. import java.io.UnsupportedEncodingException;
  3. import com.fasterxml.jackson.core.JsonProcessingException;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5. import com.nokia.pojo.TousuSheet;
  6. public class MessageUtil {
  7. private static ObjectMapper objectMapper = new ObjectMapper();
  8. /**
  9. * 构造一条鉴权消息
  10. *
  11. * @param userName
  12. * @param password
  13. * @return 字符串格式的鉴权消息
  14. */
  15. public static String getVerifyMessage(String userName, String password) {
  16. StringBuffer stringBuffer = new StringBuffer();
  17. stringBuffer.append("<Connect>\r\n");
  18. stringBuffer.append("UserName:").append(userName).append("\r\n");
  19. stringBuffer.append("Password:").append(password).append("\r\n");
  20. stringBuffer.append("</Connect>\r\n");
  21. return stringBuffer.toString();
  22. }
  23. /**
  24. * 解析鉴权消息的返回值
  25. *
  26. * @param bytes
  27. * @return 字符串0表示成功,失败返回完整的鉴权消息
  28. */
  29. public static String parseVerifyRespone(byte[] bytes) {
  30. try {
  31. String resp = new String(bytes, "utf-8");
  32. resp = resp.trim();
  33. if (resp.startsWith("<ConnectACK>")) {
  34. int index = resp.indexOf("VerifyResult:0");
  35. if (index > 0) {
  36. return "0";
  37. } else {
  38. return resp;
  39. }
  40. } else {
  41. throw new RuntimeException("鉴权失败,鉴权消息格式错误");
  42. }
  43. } catch (UnsupportedEncodingException e) {
  44. e.printStackTrace();
  45. throw new RuntimeException(e.getMessage());
  46. }
  47. }
  48. /**
  49. * 心跳检测的消息
  50. *
  51. * @return
  52. */
  53. public static String getHeartbeatMessage() {
  54. StringBuffer stringBuffer = new StringBuffer();
  55. stringBuffer.append("<HeartBeat>\r\n");
  56. stringBuffer.append("ProvinceID:18\r\n");
  57. stringBuffer.append("</HeartBeat>\r\n");
  58. return stringBuffer.toString();
  59. }
  60. /**
  61. * 解析心跳消息
  62. *
  63. * @param bytes
  64. * @return
  65. */
  66. public static String parseHeartbeatRespone(byte[] bytes) {
  67. try {
  68. String resp = new String(bytes, "utf-8");
  69. resp = resp.trim();
  70. if (resp.startsWith("<HeartBeatACK>")) {
  71. return resp;
  72. } else {
  73. throw new RuntimeException("心跳失败" + resp);
  74. }
  75. } catch (UnsupportedEncodingException e) {
  76. e.printStackTrace();
  77. throw new RuntimeException(e.getMessage());
  78. }
  79. }
  80. public static String getBusinessMessage(TousuSheet tousuSheet) {
  81. StringBuffer stringBuffer = new StringBuffer();
  82. stringBuffer.append("<AlarmStart>\r\n");
  83. try {
  84. stringBuffer.append(objectMapper.writeValueAsString(tousuSheet));
  85. } catch (JsonProcessingException e) {
  86. e.printStackTrace();
  87. throw new RuntimeException(e.getMessage());
  88. }
  89. stringBuffer.append("\r\n");
  90. // stringBuffer.append("MsgSerial:").append(tousuSheet.getKfsn()).append("\r\n");
  91. // stringBuffer.append("city:").append(tousuSheet.getCity()).append("\r\n");
  92. // stringBuffer.append("kfsn:").append(tousuSheet.getKfsn()).append("\r\n");
  93. // stringBuffer.append("acceptNo:").append(tousuSheet.getAcceptNo()).append("\r\n");
  94. // stringBuffer.append("custLevel:").append(tousuSheet.getCustLevel()).append("\r\n");
  95. // stringBuffer.append("pkgName:").append(tousuSheet.getPkgName()).append("\r\n");
  96. // stringBuffer.append("acceptChannel:").append(tousuSheet.getAcceptChannel()).append("\r\n");
  97. // stringBuffer.append("cplLevel:").append(tousuSheet.getCplLevel()).append("\r\n");
  98. // stringBuffer.append("cplStype:").append(tousuSheet.getCplStype()).append("\r\n");
  99. // stringBuffer.append("cplSname:").append(tousuSheet.getCplSname()).append("\r\n");
  100. // stringBuffer.append("cplSno:").append(tousuSheet.getCplSno()).append("\r\n");
  101. // stringBuffer.append("cplLon:").append(tousuSheet.getCplLon()).append("\r\n");
  102. // stringBuffer.append("cplLat:").append(tousuSheet.getCplLat()).append("\r\n");
  103. // stringBuffer.append("yhLon:").append(tousuSheet.getYhLon()).append("\r\n");
  104. // stringBuffer.append("yhLat:").append(tousuSheet.getYhLat()).append("\r\n");
  105. // stringBuffer.append("yhStype:").append(tousuSheet.getYhStype()).append("\r\n");
  106. // stringBuffer.append("yhNtype:").append(tousuSheet.getYhNtype()).append("\r\n");
  107. // stringBuffer.append("dstaddress:").append(tousuSheet.getDstaddress()).append("\r\n");
  108. // stringBuffer.append("yhOpinion:").append(tousuSheet.getYhOpinion()).append("\r\n");
  109. stringBuffer.append("<AlarmEnd>\r\n");
  110. return stringBuffer.toString();
  111. }
  112. }