private String getXmlToken() { String token = null; HttpClient httpclient = getHttpClient(); GetMethod get = new GetMethod(restUrl.getTokenUrl()); get.addRequestHeader("Accept", "application/xml"); NameValuePair userParam = new NameValuePair(USERNAME_PARAM, satelite.getUser()); NameValuePair passwordParam = new NameValuePair(PASSWORD_PARAM, satelite.getPassword()); NameValuePair[] params = new NameValuePair[] {userParam, passwordParam}; get.setQueryString(params); try { int statusCode = httpclient.executeMethod(get); if (statusCode != HttpStatus.SC_OK) { logger.error("Method failed: " + get.getStatusLine()); } token = parseToken(get.getResponseBodyAsString()); } catch (HttpException e) { logger.error(e.getMessage()); } catch (IOException e) { logger.error(e.getMessage()); } catch (ParserConfigurationException e) { logger.error(e.getMessage()); } catch (SAXException e) { logger.error(e.getMessage()); } finally { get.releaseConnection(); } return token; }
private void buscarOrganizacion(String token) { Organizacion organizacion = null; if (logger.isDebugEnabled()) logger.debug("Buscando Organizaciones para Satelite: " + satelite); HttpClient httpclient = getHttpClient(); GetMethod get = new GetMethod(restUrl.getOrganizacionUrl()); get.addRequestHeader("Accept", "application/xml"); NameValuePair tokenParam = new NameValuePair("token", token); int id = 0; // if(satelite.getLastOrgId() != null) // id = satelite.getLastOrgId(); int leap = idLeap; while (true) { id = id + 1; if (logger.isTraceEnabled()) { logger.trace("Buscando Organizacion con id: " + id + " en el Satelite: " + satelite); } NameValuePair passwordParam = new NameValuePair("id", String.valueOf(id)); NameValuePair[] params = new NameValuePair[] {tokenParam, passwordParam}; get.setQueryString(params); String queryString = get.getQueryString(); int statusCode; try { if (logger.isTraceEnabled()) { logger.trace("Query String: " + queryString); } statusCode = httpclient.executeMethod(get); if (statusCode != HttpStatus.SC_OK) { logger.error("Method failed: " + get.getStatusLine()); } else { String xmlString = get.getResponseBodyAsString(); if (logger.isInfoEnabled()) { logger.info("Xml Received."); } String xmlHash = constructXmlHash(xmlString); organizacion = organizacionService.findByHash(xmlHash); if (organizacion == null) { organizacion = parseOrganizacion(xmlString); if (organizacion == null) { leap--; if (leap <= 0) { logger.info( "Se llegó al fin de las Organizaciones. Saliendo del Satelite: " + satelite); break; } else { logger.info("Leap: " + leap); } } else { if (organizacion.getSatelites() == null) { organizacion.setSatelites(new HashSet<OrganizacionSatelite>()); } boolean sateliteFound = false; for (OrganizacionSatelite sat : organizacion.getSatelites()) { if (sat.getSatelite().getName().equals(satelite.getName())) { sateliteFound = true; break; } } if (!sateliteFound) { OrganizacionSatelite newSat = new OrganizacionSatelite(); newSat.setSatelite(satelite); newSat.setOrganizacion(organizacion); organizacion.getSatelites().add(newSat); } organizacion.setXmlHash(xmlHash); organizacionService.saveOrganization(organizacion); int numEmpresas = 0; if (satelite.getNumEmpresas() != null) { numEmpresas = satelite.getNumEmpresas(); } numEmpresas++; Date now = new Date(); satelite.setNumEmpresas(numEmpresas); satelite.setLastRetrieval(new Timestamp(now.getTime())); satelite.setLastOrgId(id); sateliteService.saveSatelite(satelite); } } else { if (logger.isInfoEnabled()) { logger.info("Organizacion with id: " + id + " already in centraldir"); } } } } catch (HttpException e) { logger.error(e.getMessage()); } catch (IOException e) { logger.error(e.getMessage()); } catch (ParserConfigurationException e) { logger.error(e.getMessage()); } catch (SAXException e) { logger.error(e.getMessage()); } catch (ServiceException e) { logger.error(e.getMessage()); } catch (NoSuchAlgorithmException e) { logger.error(e.getMessage()); } finally { get.releaseConnection(); } } }