package org.infosec.ismp.manager.sitecheck; import java.util.Date; import javax.jms.JMSException; import javax.jms.MapMessage; import javax.jms.Message; import javax.jms.MessageListener; import org.apache.commons.httpclient.HttpStatus; import org.infosec.ismp.manager.agent.sitecheck.SiteCheckLocator; import org.infosec.ismp.manager.model.SiteCheckResultEntity; import org.infosec.ismp.util.ThreadCategory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class SiteCheckMessageListener implements MessageListener { private SiteCheckLocator locator; private SiteCheckResultService serivce; @Autowired(required=true) public void setLocator(SiteCheckLocator locator) { this.locator = locator; } @Autowired(required=true) public void setSerivce(SiteCheckResultService serivce) { this.serivce = serivce; } @Override public void onMessage(Message message) { MapMessage map = (MapMessage)message; try { String nodeid = map.getString("nodeid"); String url = map.getString("url"); String pingStatus = map.getString("pingStatus"); double responseTime = map.getDouble("responseTime"); String siteCheckStatus = map.getString("siteCheckStatus"); String siteCheckTime = map.getString("pingTime"); boolean isReset = map.getBoolean("isReset"); String domain = locator.getDomainByNodeid(nodeid); if(null!=domain){ SiteCheckResultEntity entity = new SiteCheckResultEntity(); entity.setDomain(domain); entity.setNodeid(nodeid); entity.setPingStatus(pingStatus); entity.setResponseTime(responseTime); entity.setSiteCheckStatus(siteCheckStatus); entity.setSiteCheckTime(siteCheckTime); entity.setUrl(url); entity.setReset(isReset); serivce.save(entity); locator.setSiteCheckResult(nodeid,entity); }else{ log().warn("该siteCheck结果没有找到对应的域,抛弃,该nodeid:"+nodeid); } // System.out.println("SiteCheckMessageListener==================="); // System.out.println(nodeid); // System.out.println(url); // System.out.println(pingStatus); // System.out.println(responseTime); // System.out.println(siteCheckStatus); // System.out.println(pingTime); // System.out.println(isReset); } catch (JMSException e) { e.printStackTrace(); } } ThreadCategory log() { return ThreadCategory.getInstance(getClass()); } }