List of usage examples for javax.activation DataHandler writeTo
public void writeTo(OutputStream os) throws IOException
OutputStream
.If the DataHandler was created with a DataSource, writeTo retrieves the InputStream and copies the bytes from the InputStream to the OutputStream passed in.
From source file:org.wso2.carbon.registry.ws.api.WSRegistry.java
public void wsRestore(String path, DataHandler dataHandler) throws RegistryException { ByteArrayOutputStream output = new ByteArrayOutputStream(); try {//from w w w . j a va2s .com dataHandler.writeTo(output); } catch (IOException e) { String msg = "Failed to read the input"; log.error(msg, e); throw new RegistryException(msg, e); } ByteArrayInputStream inputStream = new ByteArrayInputStream(output.toByteArray()); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); restore(path, reader); }
From source file:org.wso2.carbon.module.mgt.service.ModuleAdminService.java
private void writeToRepository(String path, String fileName, DataHandler dataHandler) throws Exception { File destFile = new File(path, fileName); FileOutputStream fos = null;/*from w w w. ja va 2 s. co m*/ try { fos = new FileOutputStream(destFile); dataHandler.writeTo(fos); fos.flush(); fos.close(); } finally { if (fos != null) { fos.close(); } } }
From source file:org.iexhub.services.GetPatientDataService.java
@GET @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) public Response getPatientData(@Context HttpHeaders headers) { log.info("Entered getPatientData service"); boolean tls = false; tls = (IExHubConfig.getProperty("XdsBRegistryEndpointURI") == null) ? false : ((IExHubConfig.getProperty("XdsBRegistryEndpointURI").toLowerCase().contains("https") ? true : false));/*from w w w .j a v a 2 s . co m*/ GetPatientDataService.testMode = IExHubConfig.getProperty("TestMode", GetPatientDataService.testMode); GetPatientDataService.testJSONDocumentPathname = IExHubConfig.getProperty("TestJSONDocumentPathname", GetPatientDataService.testJSONDocumentPathname); GetPatientDataService.cdaToJsonTransformXslt = IExHubConfig.getProperty("CDAToJSONTransformXSLT", GetPatientDataService.cdaToJsonTransformXslt); GetPatientDataService.iExHubDomainOid = IExHubConfig.getProperty("IExHubDomainOID", GetPatientDataService.iExHubDomainOid); GetPatientDataService.iExHubAssigningAuthority = IExHubConfig.getProperty("IExHubAssigningAuthority", GetPatientDataService.iExHubAssigningAuthority); GetPatientDataService.xdsBRepositoryUniqueId = IExHubConfig.getProperty("XdsBRepositoryUniqueId", GetPatientDataService.xdsBRepositoryUniqueId); String retVal = ""; GetPatientDataResponse patientDataResponse = new GetPatientDataResponse(); StringBuilder jsonOutput = new StringBuilder(); if (!testMode) { try { if (xdsB == null) { log.info("Instantiating XdsB connector..."); xdsB = new XdsB(null, null, tls); log.info("XdsB connector successfully started"); } } catch (Exception e) { log.error("Error encountered instantiating XdsB connector, " + e.getMessage()); throw new UnexpectedServerException("Error - " + e.getMessage()); } try { MultivaluedMap<String, String> headerParams = headers.getRequestHeaders(); String ssoAuth = headerParams.getFirst("ssoauth"); log.info("HTTP headers successfully retrieved"); // Extract patient ID, query start date, and query end date. Expected format from the client is // "PatientId={0}&LastName={1}&FirstName={2}&MiddleName={3}&DateOfBirth={4}&PatientGender={5}&MotherMaidenName={6}&AddressStreet={7}&AddressCity={8}&AddressState={9}&AddressPostalCode={10}&OtherIDsScopingOrganization={11}&StartDate={12}&EndDate={13}" String[] splitPatientId = ssoAuth.split("&LastName="); String patientId = (splitPatientId[0].split("=").length == 2) ? splitPatientId[0].split("=")[1] : null; String[] parts = splitPatientId[1].split("&"); String lastName = (parts[0].length() > 0) ? parts[0] : null; String firstName = (parts[1].split("=").length == 2) ? parts[1].split("=")[1] : null; String middleName = (parts[2].split("=").length == 2) ? parts[2].split("=")[1] : null; String dateOfBirth = (parts[3].split("=").length == 2) ? parts[3].split("=")[1] : null; String gender = (parts[4].split("=").length == 2) ? parts[4].split("=")[1] : null; String motherMaidenName = (parts[5].split("=").length == 2) ? parts[5].split("=")[1] : null; String addressStreet = (parts[6].split("=").length == 2) ? parts[6].split("=")[1] : null; String addressCity = (parts[7].split("=").length == 2) ? parts[7].split("=")[1] : null; String addressState = (parts[8].split("=").length == 2) ? parts[8].split("=")[1] : null; String addressPostalCode = (parts[9].split("=").length == 2) ? parts[9].split("=")[1] : null; String otherIDsScopingOrganization = (parts[10].split("=").length == 2) ? parts[10].split("=")[1] : null; String startDate = (parts[11].split("=").length == 2) ? parts[11].split("=")[1] : null; String endDate = (parts[12].split("=").length == 2) ? parts[12].split("=")[1] : null; log.info("HTTP headers successfully parsed, now calling XdsB registry..."); // Determine if a complete patient ID (including OID and ISO specification) was provided. If not, then append IExHubDomainOid and IExAssigningAuthority... if (!patientId.contains("^^^&")) { patientId = "'" + patientId + "^^^&" + GetPatientDataService.iExHubDomainOid + "&" + GetPatientDataService.iExHubAssigningAuthority + "'"; } AdhocQueryResponse registryResponse = xdsB.registryStoredQuery(patientId, (startDate != null) ? DateFormat.getDateInstance().format(startDate) : null, (endDate != null) ? DateFormat.getDateInstance().format(endDate) : null); log.info("Call to XdsB registry successful"); // Determine if registry server returned any errors... if ((registryResponse.getRegistryErrorList() != null) && (registryResponse.getRegistryErrorList().getRegistryError().length > 0)) { for (RegistryError_type0 error : registryResponse.getRegistryErrorList().getRegistryError()) { StringBuilder errorText = new StringBuilder(); if (error.getErrorCode() != null) { errorText.append("Error code=" + error.getErrorCode() + "\n"); } if (error.getCodeContext() != null) { errorText.append("Error code context=" + error.getCodeContext() + "\n"); } // Error code location (i.e., stack trace) only to be logged to IExHub error file patientDataResponse.getErrorMsgs().add(errorText.toString()); if (error.getLocation() != null) { errorText.append("Error location=" + error.getLocation()); } log.error(errorText.toString()); } } // Try to retrieve documents... RegistryObjectListType registryObjectList = registryResponse.getRegistryObjectList(); IdentifiableType[] documentObjects = registryObjectList.getIdentifiable(); if ((documentObjects != null) && (documentObjects.length > 0)) { log.info("Documents found in the registry, retrieving them from the repository..."); HashMap<String, String> documents = new HashMap<String, String>(); for (IdentifiableType identifiable : documentObjects) { if (identifiable.getClass().equals(ExtrinsicObjectType.class)) { // Determine if the "home" attribute (homeCommunityId in XCA parlance) is present... String home = ((((ExtrinsicObjectType) identifiable).getHome() != null) && (((ExtrinsicObjectType) identifiable).getHome().getPath().length() > 0)) ? ((ExtrinsicObjectType) identifiable).getHome().getPath() : null; ExternalIdentifierType[] externalIdentifiers = ((ExtrinsicObjectType) identifiable) .getExternalIdentifier(); // Find the ExternalIdentifier that has the "XDSDocumentEntry.uniqueId" value... String uniqueId = null; for (ExternalIdentifierType externalIdentifier : externalIdentifiers) { String val = externalIdentifier.getName().getInternationalStringTypeSequence()[0] .getLocalizedString().getValue().getFreeFormText(); if ((val != null) && (val.compareToIgnoreCase("XDSDocumentEntry.uniqueId") == 0)) { log.info("Located XDSDocumentEntry.uniqueId ExternalIdentifier, uniqueId=" + uniqueId); uniqueId = externalIdentifier.getValue().getLongName(); break; } } if (uniqueId != null) { documents.put(uniqueId, home); log.info("Document ID added: " + uniqueId + ", homeCommunityId: " + home); } } else { String home = ((identifiable.getHome() != null) && (identifiable.getHome().getPath().length() > 0)) ? identifiable.getHome().getPath() : null; documents.put(identifiable.getId().getPath(), home); log.info("Document ID added: " + identifiable.getId().getPath() + ", homeCommunityId: " + home); } } log.info("Invoking XdsB repository connector retrieval..."); RetrieveDocumentSetResponse documentSetResponse = xdsB .retrieveDocumentSet(xdsBRepositoryUniqueId, documents, patientId); log.info("XdsB repository connector retrieval succeeded"); // Invoke appropriate map(s) to process documents in documentSetResponse... if (documentSetResponse.getRetrieveDocumentSetResponse() .getRetrieveDocumentSetResponseTypeSequence_type0() != null) { DocumentResponse_type0[] docResponseArray = documentSetResponse .getRetrieveDocumentSetResponse().getRetrieveDocumentSetResponseTypeSequence_type0() .getDocumentResponse(); if (docResponseArray != null) { jsonOutput.append("{\"Documents\":["); boolean first = true; try { for (DocumentResponse_type0 document : docResponseArray) { if (!first) { jsonOutput.append(","); } first = false; log.info("Processing document ID=" + document.getDocumentUniqueId().getLongName()); String mimeType = docResponseArray[0].getMimeType().getLongName(); if (mimeType.compareToIgnoreCase("text/xml") == 0) { final String filename = this.testOutputPath + "/" + document.getDocumentUniqueId().getLongName() + ".xml"; log.info("Persisting document to filesystem, filename=" + filename); DataHandler dh = document.getDocument(); File file = new File(filename); FileOutputStream fileOutStream = new FileOutputStream(file); dh.writeTo(fileOutStream); fileOutStream.close(); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(new FileInputStream(filename)); XPath xPath = XPathFactory.newInstance().newXPath(); //set namespace to xpath xPath.setNamespaceContext(new NamespaceContext() { private final String uri = "urn:hl7-org:v3"; private final String prefix = "hl7"; @Override public String getNamespaceURI(String prefix) { return this.prefix.equals(prefix) ? uri : null; } @Override public String getPrefix(String namespaceURI) { return this.uri.equals(namespaceURI) ? this.prefix : null; } @Override public Iterator getPrefixes(String namespaceURI) { return null; } }); NodeList nodes = (NodeList) xPath.evaluate( "/hl7:ClinicalDocument/hl7:templateId", doc.getDocumentElement(), XPathConstants.NODESET); boolean templateFound = false; if (nodes.getLength() > 0) { log.info("Searching for /ClinicalDocument/templateId, document ID=" + document.getDocumentUniqueId().getLongName()); for (int i = 0; i < nodes.getLength(); ++i) { String val = ((Element) nodes.item(i)).getAttribute("root"); if ((val != null) && (val.compareToIgnoreCase( "2.16.840.1.113883.10.20.22.1.2") == 0)) { log.info("/ClinicalDocument/templateId node found, document ID=" + document.getDocumentUniqueId().getLongName()); log.info("Invoking XSL transform, document ID=" + document.getDocumentUniqueId().getLongName()); DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document mappedDoc = builder.parse(new File(filename)); DOMSource source = new DOMSource(mappedDoc); TransformerFactory transformerFactory = TransformerFactory .newInstance(); Transformer transformer = transformerFactory .newTransformer(new StreamSource( GetPatientDataService.cdaToJsonTransformXslt)); final String jsonFilename = this.testOutputPath + "/" + document.getDocumentUniqueId().getLongName() + ".json"; File jsonFile = new File(jsonFilename); FileOutputStream jsonFileOutStream = new FileOutputStream( jsonFile); StreamResult result = new StreamResult(jsonFileOutStream); transformer.transform(source, result); jsonFileOutStream.close(); log.info("Successfully transformed CCDA to JSON, filename=" + jsonFilename); jsonOutput.append(new String(readAllBytes(get(jsonFilename)))); templateFound = true; } } } if (!templateFound) { // Document doesn't match the template ID - add to error list... patientDataResponse.getErrorMsgs().add( "Document retrieved doesn't match required template ID - document ID=" + document.getDocumentUniqueId().getLongName()); } } else { patientDataResponse.getErrorMsgs() .add("Document retrieved is not XML - document ID=" + document.getDocumentUniqueId().getLongName()); } } } catch (Exception e) { log.error("Error encountered, " + e.getMessage()); throw e; } } } if (jsonOutput.length() > 0) { jsonOutput.append("]}"); } } } catch (Exception e) { log.error("Error encountered, " + e.getMessage()); throw new UnexpectedServerException("Error - " + e.getMessage()); } } else { // Return test document when testMode is true try { retVal = FileUtils.readFileToString(new File(GetPatientDataService.testJSONDocumentPathname)); return Response.status(Response.Status.OK).entity(retVal).type(MediaType.APPLICATION_JSON).build(); } catch (Exception e) { throw new UnexpectedServerException("Error - " + e.getMessage()); } } return Response.status(Response.Status.OK).entity(jsonOutput.toString()).type(MediaType.APPLICATION_JSON) .build(); }
From source file:org.wso2.carbon.relay.ExpandingMessageFormatter.java
private void findAndWrite2OutputStream(MessageContext messageContext, OutputStream out, boolean preserve) throws AxisFault { try {/*from w w w . java 2 s. c o m*/ SOAPEnvelope envelope = messageContext.getEnvelope(); OMElement contentEle = envelope.getBody().getFirstElement(); if (contentEle != null) { OMNode node = contentEle.getFirstOMChild(); if (!(node instanceof OMText)) { String msg = "Wrong Input for the Validator, " + "the content of the first child element of the Body " + "should have the zip file"; log.error(msg); throw new AxisFault(msg); } OMText binaryDataNode = (OMText) node; DataHandler dh = (DataHandler) binaryDataNode.getDataHandler(); DataSource dataSource = dh.getDataSource(); if (dataSource instanceof StreamingOnRequestDataSource) { if (((StreamingOnRequestDataSource) dataSource).isConsumed()) { Object httpMethodObj = messageContext.getProperty(Constants.Configuration.HTTP_METHOD); if ((httpMethodObj instanceof String) && Constants.Configuration.HTTP_METHOD_POST.equals(httpMethodObj)) { log.warn("Attempting to send an already consumed request [" + messageContext.getTo().getAddress() + " POST/Empty Message Body]"); } //Ask the data source to stream, if it has not already cached the request if (!preserve) { ((StreamingOnRequestDataSource) dataSource).setLastUse(true); } } } dh.writeTo(out); } } catch (OMException e) { log.error(e); throw AxisFault.makeFault(e); } catch (IOException e) { log.error(e); throw AxisFault.makeFault(e); } }
From source file:org.wso2.carbon.event.simulator.core.internal.ds.CarbonEventSimulator.java
private void writeResource(DataHandler dataHandler, String destPath, String fileName, File csvDest) throws IOException { File tempDestFile = new File(destPath, fileName); FileOutputStream fos = null;/*from ww w. j a va 2 s. c om*/ File destFile = new File(csvDest, fileName); try { fos = new FileOutputStream(tempDestFile); /* File stream is copied to a temp directory in order handle hot deployment issue occurred in windows */ dataHandler.writeTo(fos); FileUtils.copyFile(tempDestFile, destFile); } catch (FileNotFoundException e) { log.error("Cannot find the file", e); throw e; } catch (IOException e) { log.error("IO error."); throw e; } finally { close(fos); } boolean isDeleted = tempDestFile.delete(); if (!isDeleted) { log.warn("temp file: " + tempDestFile.getAbsolutePath() + " deletion failed, scheduled deletion on server exit."); tempDestFile.deleteOnExit(); } }
From source file:it.govpay.core.business.Rendicontazioni.java
public String downloadRendicontazioni(boolean deep) throws GovPayException { boolean errori = false; List<String> response = new ArrayList<String>(); try {// www. j av a 2 s.c o m GpThreadLocal.get().log("rendicontazioni.acquisizione"); DominiBD dominiBD = new DominiBD(this); StazioniBD stazioniBD = new StazioniBD(this); List<Stazione> lstStazioni = stazioniBD.getStazioni(); PspBD pspBD = new PspBD(this); List<Psp> lstPsp = pspBD.getPsp(); closeConnection(); for (Stazione stazione : lstStazioni) { List<TipoIdRendicontazione> flussiDaAcquisire = new ArrayList<TipoIdRendicontazione>(); setupConnection(GpThreadLocal.get().getTransactionId()); Intermediario intermediario = stazione.getIntermediario(this); NodoClient client = new NodoClient(intermediario, this); closeConnection(); if (deep) { DominioFilter filter = dominiBD.newFilter(); filter.setCodStazione(stazione.getCodStazione()); List<Dominio> lstDomini = dominiBD.findAll(filter); for (Dominio dominio : lstDomini) { List<String> sids = new ArrayList<String>(); for (Psp psp : lstPsp) { if (sids.contains(psp.getCodPsp())) continue; sids.add(psp.getCodPsp()); log.debug("Acquisizione dei flussi di rendicontazione dal psp [" + psp.getCodPsp() + "] per il dominio [" + dominio.getCodDominio() + "] in corso."); flussiDaAcquisire.addAll(chiediListaFr(client, psp, stazione, dominio)); } } } else { log.debug("Acquisizione dei flussi di rendicontazione per la stazione [" + stazione.getCodStazione() + "] in corso."); flussiDaAcquisire.addAll(chiediListaFr(client, null, stazione, null)); } // Scarto i flussi gia acquisiti setupConnection(GpThreadLocal.get().getTransactionId()); FrBD frBD = new FrBD(this); for (TipoIdRendicontazione idRendicontazione : flussiDaAcquisire) { if (frBD.exists(idRendicontazione.getIdentificativoFlusso())) flussiDaAcquisire.remove(idRendicontazione); } closeConnection(); for (TipoIdRendicontazione idRendicontazione : flussiDaAcquisire) { log.debug("Acquisizione flusso di rendicontazione " + idRendicontazione.getIdentificativoFlusso()); boolean hasFrAnomalia = false; String idTransaction2 = null; try { idTransaction2 = GpThreadLocal.get().openTransaction(); GpThreadLocal.get().getContext().getRequest() .addGenericProperty(new Property("codStazione", stazione.getCodStazione())); GpThreadLocal.get().getContext().getRequest().addGenericProperty( new Property("idFlusso", idRendicontazione.getIdentificativoFlusso())); GpThreadLocal.get().setupNodoClient(stazione.getCodStazione(), null, Azione.nodoChiediFlussoRendicontazione); NodoChiediFlussoRendicontazione richiestaFlusso = new NodoChiediFlussoRendicontazione(); richiestaFlusso.setIdentificativoIntermediarioPA( stazione.getIntermediario(this).getCodIntermediario()); richiestaFlusso.setIdentificativoStazioneIntermediarioPA(stazione.getCodStazione()); richiestaFlusso.setPassword(stazione.getPassword()); richiestaFlusso.setIdentificativoFlusso(idRendicontazione.getIdentificativoFlusso()); NodoChiediFlussoRendicontazioneRisposta risposta; try { risposta = client.nodoChiediFlussoRendicontazione(richiestaFlusso, stazione.getIntermediario(this).getDenominazione()); } catch (Exception e) { // Errore nella richiesta. Loggo e continuo con il prossimo flusso response.add(idRendicontazione.getIdentificativoFlusso() + "#Richiesta al nodo fallita: " + e + "."); log.error("Richiesta flusso rendicontazione [" + idRendicontazione.getIdentificativoFlusso() + "] fallita: " + e); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoFail", e.getMessage()); errori = true; continue; } if (risposta.getFault() != null) { // Errore nella richiesta. Loggo e continuo con il prossimo flusso response.add(idRendicontazione.getIdentificativoFlusso() + "#Richiesta al nodo fallita: " + risposta.getFault().getFaultCode() + " " + risposta.getFault().getFaultString() + "."); log.error("Richiesta flusso rendicontazione [" + idRendicontazione.getIdentificativoFlusso() + "] fallita: " + risposta.getFault().getFaultCode() + " " + risposta.getFault().getFaultString()); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoKo", risposta.getFault().getFaultCode(), risposta.getFault().getFaultString(), risposta.getFault().getDescription()); } else { byte[] tracciato = null; try { ByteArrayOutputStream output = new ByteArrayOutputStream(); DataHandler dh = risposta.getXmlRendicontazione(); dh.writeTo(output); tracciato = output.toByteArray(); } catch (IOException e) { response.add(idRendicontazione.getIdentificativoFlusso() + "#Lettura del flusso fallita: " + e + "."); log.error("Errore durante la lettura del flusso di rendicontazione", e); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoFail", "Lettura del flusso fallita: " + e); errori = true; continue; } CtFlussoRiversamento flussoRendicontazione = null; try { flussoRendicontazione = JaxbUtils.toFR(tracciato); } catch (Exception e) { response.add(idRendicontazione.getIdentificativoFlusso() + "#Parsing del flusso fallita: " + e + "."); log.error("Errore durante il parsing del flusso di rendicontazione", e); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoFail", "Errore durante il parsing del flusso di rendicontazione: " + e); errori = true; continue; } log.info("Ricevuto flusso rendicontazione per " + flussoRendicontazione.getDatiSingoliPagamenti().size() + " singoli pagamenti"); setupConnection(GpThreadLocal.get().getTransactionId()); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlusso"); GpThreadLocal.get().getContext().getRequest().addGenericProperty(new Property("trn", flussoRendicontazione.getIdentificativoUnivocoRegolamento())); Fr fr = new Fr(); fr.setCodBicRiversamento(flussoRendicontazione.getCodiceBicBancaDiRiversamento()); fr.setCodFlusso(idRendicontazione.getIdentificativoFlusso()); fr.setIur(flussoRendicontazione.getIdentificativoUnivocoRegolamento()); fr.setDataAcquisizione(new Date()); fr.setDataFlusso(flussoRendicontazione.getDataOraFlusso()); fr.setDataRegolamento(flussoRendicontazione.getDataRegolamento()); fr.setNumeroPagamenti(flussoRendicontazione.getNumeroTotalePagamenti().longValue()); fr.setImportoTotalePagamenti(flussoRendicontazione.getImportoTotalePagamenti()); fr.setXml(tracciato); String codPsp = null, codDominio = null; try { codPsp = idRendicontazione.getIdentificativoFlusso().substring(10, idRendicontazione.getIdentificativoFlusso().indexOf("-", 10)); fr.setCodPsp(codPsp); log.debug("Identificativo PSP estratto dall'identificativo flusso: " + codPsp); AnagraficaManager.getPsp(this, codPsp); GpThreadLocal.get().getContext().getRequest() .addGenericProperty(new Property("codPsp", codPsp)); } catch (Exception e) { GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoPspNonCensito", codPsp == null ? "null" : codPsp); GpThreadLocal.get().getContext().getRequest().addGenericProperty( new Property("codPsp", codPsp == null ? "null" : codPsp)); fr.addAnomalia("007108", "L'identificativo PSP [" + codPsp + "] ricavato dal codice flusso non riferisce un PSP censito"); } Dominio dominio = null; try { codDominio = flussoRendicontazione.getIstitutoRicevente() .getIdentificativoUnivocoRicevente().getCodiceIdentificativoUnivoco(); fr.setCodDominio(codDominio); GpThreadLocal.get().getContext().getRequest() .addGenericProperty(new Property("codDominio", codDominio)); dominio = AnagraficaManager.getDominio(this, codDominio); } catch (Exception e) { if (codDominio == null) { codDominio = "????"; GpThreadLocal.get().getContext().getRequest() .addGenericProperty(new Property("codDominio", "null")); } GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoDominioNonCensito"); fr.addAnomalia("007109", "L'indentificativo ricevente [" + codDominio + "] del flusso non riferisce un Dominio censito"); } BigDecimal totaleImportiRendicontati = BigDecimal.ZERO; PagamentiBD pagamentiBD = new PagamentiBD(this); VersamentiBD versamentiBD = new VersamentiBD(this); IuvBD iuvBD = new IuvBD(this); for (CtDatiSingoliPagamenti dsp : flussoRendicontazione.getDatiSingoliPagamenti()) { String iur = dsp.getIdentificativoUnivocoRiscossione(); String iuv = dsp.getIdentificativoUnivocoVersamento(); BigDecimal importoRendicontato = dsp.getSingoloImportoPagato(); log.debug("Rendicontato (Esito " + dsp.getCodiceEsitoSingoloPagamento() + ") per un importo di (" + dsp.getSingoloImportoPagato() + ") [CodDominio: " + codDominio + "] [Iuv: " + dsp.getIdentificativoUnivocoVersamento() + "][Iur: " + iur + "]"); it.govpay.bd.model.Rendicontazione rendicontazione = new it.govpay.bd.model.Rendicontazione(); // Gestisco un codice esito non supportato try { rendicontazione.setEsito( EsitoRendicontazione.toEnum(dsp.getCodiceEsitoSingoloPagamento())); } catch (Exception e) { GpThreadLocal.get().log("rendicontazioni.esitoSconosciuto", iuv, iur, dsp.getCodiceEsitoSingoloPagamento() == null ? "null" : dsp.getCodiceEsitoSingoloPagamento()); rendicontazione.addAnomalia("007110", "Codice esito [" + dsp.getCodiceEsitoSingoloPagamento() + "] sconosciuto"); } rendicontazione.setData(dsp.getDataEsitoSingoloPagamento()); rendicontazione.setIur(dsp.getIdentificativoUnivocoRiscossione()); rendicontazione.setIuv(dsp.getIdentificativoUnivocoVersamento()); rendicontazione.setImporto(dsp.getSingoloImportoPagato()); totaleImportiRendicontati = totaleImportiRendicontati.add(importoRendicontato); // Cerco il pagamento riferito it.govpay.bd.model.Pagamento pagamento = null; try { pagamento = pagamentiBD.getPagamento(codDominio, iuv, iur); // Pagamento trovato. Faccio i controlli semantici rendicontazione.setIdPagamento(pagamento.getId()); // Verifico l'importo if (rendicontazione.getEsito().equals(EsitoRendicontazione.REVOCATO)) { if (pagamento.getImportoRevocato() .compareTo(importoRendicontato.abs()) != 0) { GpThreadLocal.get().log("rendicontazioni.importoStornoErrato", iuv, iur); log.info("Revoca [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: l'importo rendicontato [" + importoRendicontato.doubleValue() + "] non corrisponde a quanto stornato [" + pagamento.getImportoRevocato().doubleValue() + "]"); rendicontazione.addAnomalia("007112", "L'importo rendicontato [" + importoRendicontato.doubleValue() + "] non corrisponde a quanto stornato [" + pagamento.getImportoRevocato().doubleValue() + "]"); } // Verifico che il pagamento non sia gia' rendicontato if (pagamento.isPagamentoRendicontato(this)) { GpThreadLocal.get().log("rendicontazioni.giaStornato", iuv, iur); log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: storno gia' rendicontato da altri flussi"); rendicontazione.addAnomalia("007113", "Lo storno riferito dalla rendicontazione risulta gia' rendicontato da altri flussi"); } } else { if (pagamento.getImportoPagato().compareTo(importoRendicontato) != 0) { GpThreadLocal.get().log("rendicontazioni.importoErrato", iuv, iur); log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: l'importo rendicontato [" + importoRendicontato.doubleValue() + "] non corrisponde a quanto pagato [" + pagamento.getImportoPagato().doubleValue() + "]"); rendicontazione.addAnomalia("007104", "L'importo rendicontato [" + importoRendicontato.doubleValue() + "] non corrisponde a quanto pagato [" + pagamento.getImportoPagato().doubleValue() + "]"); } // Verifico che il pagamento non sia gia' rendicontato if (pagamento.isPagamentoRendicontato(this)) { GpThreadLocal.get().log("rendicontazioni.giaRendicontato", iuv, iur); log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: pagamento gia' rendicontato da altri flussi"); rendicontazione.addAnomalia("007103", "Il pagamento riferito dalla rendicontazione risulta gia' rendicontato da altri flussi"); } } } catch (NotFoundException e) { // Pagamento non trovato. Devo capire se ce' un errore. // Controllo che sia per uno IUV generato da noi if (!isInterno(dominio, iuv)) { rendicontazione.setStato(StatoRendicontazione.ALTRO_INTERMEDIARIO); continue; } // Controllo se e' un pagamento senza RPT if (rendicontazione.getEsito() .equals(EsitoRendicontazione.ESEGUITO_SENZA_RPT)) { //Recupero il versamento, internamente o dall'applicazione esterna it.govpay.bd.model.Versamento versamento = null; String erroreVerifica = null; String codApplicazione = null; try { try { it.govpay.model.Iuv iuvModel = iuvBD.getIuv(dominio.getId(), iuv); versamento = versamentiBD.getVersamento( iuvModel.getIdApplicazione(), iuvModel.getCodVersamentoEnte()); } catch (NotFoundException nfe) { codApplicazione = it.govpay.bd.GovpayConfig.getInstance() .getDefaultCustomIuvGenerator().getCodApplicazione(dominio, iuv, dominio.getApplicazioneDefault(this)); if (codApplicazione == null) { response.add(idRendicontazione.getIdentificativoFlusso() + "#Acquisizione flusso fallita. Impossibile individuare l'applicativo gestore del versamento per acquisirne i dati [Dominio:" + codDominio + " Iuv:" + iuv + "]."); log.error( "Errore durante il processamento del flusso di Rendicontazione [Flusso:" + idRendicontazione.getIdentificativoFlusso() + "]: Impossibile individuare l'applicativo gestore del versamento per acquisirne i dati [Dominio:" + codDominio + " Iuv:" + iuv + "]. Flusso non acquisito."); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoKo", idRendicontazione.getIdentificativoFlusso(), "Impossibile individuare l'applicativo gestore del versamento per acquisirne i dati [Dominio:" + codDominio + " Iuv:" + iuv + "]. Flusso non acquisito."); throw new GovPayException(EsitoOperazione.INTERNAL, "Impossibile individuare l'applicativo gestore del versamento per acquisirne i dati [Dominio:" + codDominio + " Iuv:" + iuv + "]. Flusso non acquisito."); } versamento = VersamentoUtils.acquisisciVersamento( AnagraficaManager.getApplicazione(this, codApplicazione), null, null, null, codDominio, iuv, this); } } catch (VersamentoScadutoException e1) { erroreVerifica = "Versamento non acquisito dall'applicazione gestrice perche' SCADUTO."; } catch (VersamentoAnnullatoException e1) { erroreVerifica = "Versamento non acquisito dall'applicazione gestrice perche' ANNULLATO."; } catch (VersamentoDuplicatoException e1) { erroreVerifica = "Versamento non acquisito dall'applicazione gestrice perche' DUPLICATO."; } catch (VersamentoSconosciutoException e1) { erroreVerifica = "Versamento non acquisito dall'applicazione gestrice perche' SCONOSCIUTO."; } catch (ClientException ce) { response.add(idRendicontazione.getIdentificativoFlusso() + "#Acquisizione flusso fallita. Riscontrato errore nell'acquisizione del versamento dall'applicazione gestrice [Transazione: " + idTransaction2 + "]."); log.error( "Errore durante il processamento del flusso di Rendicontazione [Flusso:" + idRendicontazione.getIdentificativoFlusso() + "]: impossibile acquisire i dati del versamento [Dominio:" + codDominio + " Iuv:" + iuv + "]. Flusso non acquisito."); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoKo", idRendicontazione.getIdentificativoFlusso(), "Impossibile acquisire i dati di un versamento dall'applicativo gestore [Applicazione:" + codApplicazione + " Dominio:" + codDominio + " Iuv:" + iuv + "]. Flusso non acquisito."); throw new GovPayException(ce); } if (versamento == null) { // non ho trovato il versamento GpThreadLocal.get().log("rendicontazioni.senzaRptNoVersamento", iuv, iur); log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: Pagamento senza RPT di versamento sconosciuto."); rendicontazione.addAnomalia("007111", "Il versamento risulta sconosciuto: " + erroreVerifica); continue; } else { if (versamento.getSingoliVersamenti(this).size() != 1) { // Un pagamento senza rpt DEVE riferire un pagamento tipo 3 con un solo singolo versamento GpThreadLocal.get().log( "rendicontazioni.senzaRptVersamentoMalformato", iuv, iur); log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: Pagamento senza RPT di versamento sconosciuto."); rendicontazione.addAnomalia("007114", "Il versamento presenta piu' singoli versamenti"); continue; } // Trovato versamento. Creo il pagamento senza rpt pagamento = new it.govpay.bd.model.Pagamento(); pagamento.setCodDominio(codDominio); pagamento.setDataAcquisizione(rendicontazione.getData()); pagamento.setDataPagamento(rendicontazione.getData()); pagamento.setImportoPagato(rendicontazione.getImporto()); pagamento.setIur(rendicontazione.getIur()); pagamento.setIuv(rendicontazione.getIuv()); pagamento.setCodDominio(fr.getCodDominio()); pagamento.setSingoloVersamento( versamento.getSingoliVersamenti(this).get(0)); rendicontazione.setPagamento(pagamento); rendicontazione.setPagamentoDaCreare(true); continue; } } GpThreadLocal.get().log("rendicontazioni.noPagamento", iuv, iur); log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur: " + iur + "] rendicontato con errore: il pagamento non risulta presente in base dati."); rendicontazione.addAnomalia("007101", "Il pagamento riferito dalla rendicontazione non risulta presente in base dati."); continue; } catch (MultipleResultException e) { // Individuati piu' pagamenti riferiti dalla rendicontazione GpThreadLocal.get().log("rendicontazioni.poliPagamento", iuv, iur); log.info("Pagamento rendicontato duplicato: [CodDominio: " + codDominio + "] [Iuv: " + iuv + "] [Iur: " + iur + "]"); rendicontazione.addAnomalia("007102", "La rendicontazione riferisce piu di un pagamento gestito."); } finally { if (!StatoRendicontazione.ALTRO_INTERMEDIARIO.equals(rendicontazione.getStato()) && rendicontazione.getAnomalie().isEmpty()) { rendicontazione.setStato(StatoRendicontazione.OK); } else if (!StatoRendicontazione.ALTRO_INTERMEDIARIO .equals(rendicontazione.getStato()) && !rendicontazione.getAnomalie().isEmpty()) { rendicontazione.setStato(StatoRendicontazione.ANOMALA); hasFrAnomalia = true; } fr.addRendicontazione(rendicontazione); } } // Singole rendicontazioni elaborate. // Controlli di quadratura generali if (totaleImportiRendicontati .compareTo(flussoRendicontazione.getImportoTotalePagamenti()) != 0) { GpThreadLocal.get().log("rendicontazioni.importoTotaleErrato"); log.info("La somma degli importi rendicontati [" + totaleImportiRendicontati + "] non corrisponde al totale indicato nella testata del flusso [" + flussoRendicontazione.getImportoTotalePagamenti() + "]"); fr.addAnomalia("007106", "La somma degli importi rendicontati [" + totaleImportiRendicontati + "] non corrisponde al totale indicato nella testata del flusso [" + flussoRendicontazione.getImportoTotalePagamenti() + "]"); } try { if (flussoRendicontazione.getDatiSingoliPagamenti().size() != flussoRendicontazione .getNumeroTotalePagamenti().longValueExact()) { GpThreadLocal.get().log("rendicontazioni.numeroRendicontazioniErrato"); log.info("Il numero di pagamenti rendicontati [" + flussoRendicontazione.getDatiSingoliPagamenti().size() + "] non corrisponde al totale indicato nella testata del flusso [" + flussoRendicontazione.getNumeroTotalePagamenti().longValueExact() + "]"); fr.addAnomalia("007107", "Il numero di pagamenti rendicontati [" + flussoRendicontazione.getDatiSingoliPagamenti().size() + "] non corrisponde al totale indicato nella testata del flusso [" + flussoRendicontazione.getNumeroTotalePagamenti().longValueExact() + "]"); } } catch (Exception e) { GpThreadLocal.get().log("rendicontazioni.numeroRendicontazioniErrato"); log.info("Il numero di pagamenti rendicontati [" + flussoRendicontazione.getDatiSingoliPagamenti().size() + "] non corrisponde al totale indicato nella testata del flusso [????]"); fr.addAnomalia("007107", "Il numero di pagamenti rendicontati [" + flussoRendicontazione.getDatiSingoliPagamenti().size() + "] non corrisponde al totale indicato nella testata del flusso [????]"); } // Decido lo stato del FR if (fr.getAnomalie().isEmpty()) { fr.setStato(StatoFr.ACCETTATA); } else { fr.setStato(StatoFr.ANOMALA); hasFrAnomalia = true; } // Procedo al salvataggio RendicontazioniBD rendicontazioniBD = new RendicontazioniBD(this); // Tutte le operazioni di salvataggio devono essere in transazione. setAutoCommit(false); frBD.insertFr(fr); for (Rendicontazione r : fr.getRendicontazioni(this)) { r.setIdFr(fr.getId()); // controllo se c'e' un pagamento da creare relativo alla rendicontazione // deve anche essere creato il pagamento. if (r.isPagamentoDaCreare()) { pagamentiBD.insertPagamento(r.getPagamento(this)); r.setIdPagamento(r.getPagamento(this).getId()); } rendicontazioniBD.insert(r); } this.commit(); if (!hasFrAnomalia) { log.info("Flusso di rendicontazione acquisito senza anomalie."); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoOk"); } else { log.info("Flusso di rendicontazione acquisito con anomalie."); GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussoOkAnomalia"); } } } catch (GovPayException ce) { log.error("Flusso di rendicontazione non acquisito", ce); errori = true; } finally { GpThreadLocal.get().closeTransaction(idTransaction2); } } } } catch (Exception e) { GpThreadLocal.get().log("rendicontazioni.acquisizioneFlussiFail", e.getMessage()); throw new GovPayException(e); } finally { try { if (isClosed()) setupConnection(GpThreadLocal.get().getTransactionId()); } catch (Exception e) { log.error("Errore nel ripristino della connessione", e); } } GpThreadLocal.get().log("rendicontazioni.acquisizioneOk"); String rspTxt = ""; if (errori) rspTxt = "WARNING#Processo di acquisizione completato parzialmente: uno o piu' flussi non sono stati acquisiti.|"; else rspTxt = "OK#Processo di acquisizione completato con successo|"; if (response.isEmpty()) { return rspTxt + "Processo di acquisizione completato con successo. #Nessun flusso acquisito."; } else { return rspTxt + StringUtils.join(response, "|"); } }
From source file:com.knowgate.dfs.FileSystem.java
private static void copyHTTPToFile(String sSource, String sTarget) throws MalformedURLException, IOException { URL oUrl = new URL(sSource); FileOutputStream oTrgt = new FileOutputStream(sTarget.substring(7)); DataHandler oHndlr = new DataHandler(oUrl); oHndlr.writeTo(oTrgt); oTrgt.close();// w w w . jav a 2 s . co m }
From source file:org.wso2.carbon.event.simulator.core.internal.CarbonEventSimulator.java
private void writeResource(DataHandler dataHandler, String destPath, String fileName, File csvDest) throws IOException { File tempDestinationFile = new File(destPath, fileName); FileOutputStream fos = null;//from w w w .ja v a 2 s. c o m File destinationFile = new File(csvDest, fileName); try { fos = new FileOutputStream(tempDestinationFile); /* File stream is copied to a temp directory in order handle hot deployment issue occurred in windows */ dataHandler.writeTo(fos); FileUtils.copyFile(tempDestinationFile, destinationFile); } catch (FileNotFoundException e) { log.error("Cannot find the file that specified", e); throw e; } catch (IOException e) { log.error("Exception when reading the file", e); throw e; } finally { if (fos == null) { return; } try { fos.close(); } catch (IOException e) { log.warn("Can't close file streams.", e); } } boolean isDeleted = tempDestinationFile.delete(); if (!isDeleted) { log.warn("temp file: " + tempDestinationFile.getAbsolutePath() + " deletion failed, scheduled deletion on server exit."); tempDestinationFile.deleteOnExit(); } }
From source file:org.apache.synapse.samples.framework.clients.MTOMSwASampleClient.java
public SampleClientResult sendUsingSWA(String fileName, String targetEPR) { clientResult = new SampleClientResult(); try {// www . ja v a2 s.c o m Options options = new Options(); options.setTo(new EndpointReference(targetEPR)); options.setAction("urn:uploadFileUsingSwA"); options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE); ConfigurationContext configContext = ConfigurationContextFactory .createConfigurationContextFromFileSystem(configuration.getClientRepo(), configuration.getAxis2Xml()); ServiceClient sender = new ServiceClient(configContext, null); sender.setOptions(options); OperationClient mepClient = sender.createClient(ServiceClient.ANON_OUT_IN_OP); MessageContext mc = new MessageContext(); log.info("Sending file : " + fileName + " as SwA"); FileDataSource fileDataSource = new FileDataSource(new File(fileName)); DataHandler dataHandler = new DataHandler(fileDataSource); String attachmentID = mc.addAttachment(dataHandler); SOAPFactory factory = OMAbstractFactory.getSOAP11Factory(); SOAPEnvelope env = factory.getDefaultEnvelope(); OMNamespace ns = factory.createOMNamespace("http://services.samples", "m0"); OMElement payload = factory.createOMElement("uploadFileUsingSwA", ns); OMElement request = factory.createOMElement("request", ns); OMElement imageId = factory.createOMElement("imageId", ns); imageId.setText(attachmentID); request.addChild(imageId); payload.addChild(request); env.getBody().addChild(payload); mc.setEnvelope(env); mepClient.addMessageContext(mc); mepClient.execute(true); MessageContext response = mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE); SOAPBody body = response.getEnvelope().getBody(); String imageContentId = body .getFirstChildWithName(new QName("http://services.samples", "uploadFileUsingSwAResponse")) .getFirstChildWithName(new QName("http://services.samples", "response")) .getFirstChildWithName(new QName("http://services.samples", "imageId")).getText(); Attachments attachment = response.getAttachmentMap(); dataHandler = attachment.getDataHandler(imageContentId); File tempFile = File.createTempFile("swa-", ".gif"); FileOutputStream fos = new FileOutputStream(tempFile); dataHandler.writeTo(fos); fos.flush(); fos.close(); log.info("Saved response to file : " + tempFile.getAbsolutePath()); clientResult.incrementResponseCount(); } catch (Exception e) { log.error("Error invoking service", e); clientResult.setException(e); } return clientResult; }
From source file:com.clustercontrol.collect.action.RecordDataWriter.java
/** * ???????????????//from w w w.ja v a2 s .c om * * @param fileName */ public void download(String prefName, String name) { if (null == name) { name = prefName; } m_log.debug("download() downloadFileName = " + prefName + ", name = " + name); m_log.info("download perf file = " + name); FileOutputStream fileOutputStream = null; DataHandler handler = null; try { // ???? m_log.info("download perf file = " + name + ", waitCount = " + waitCount); for (Map.Entry<String, List<String>> entry : m_targetManagerFacilityMap.entrySet()) { String managerName = entry.getKey(); for (int i = 0; i < waitCount; i++) { if (!this.canceled) { Thread.sleep(waitSleep); m_log.debug("download perf file = " + name + ", create check. count = " + i); // ???????????(out of memory) CollectEndpointWrapper wrapper = CollectEndpointWrapper.getWrapper(managerName); handler = wrapper.downloadPerfFile(prefName); if (handler != null) { m_log.info("download perf file = " + name + ", created !"); break; } } } if (handler == null) { m_log.info("download handler is null"); setCancelMessage(Messages.getString("performance.get.collecteddata.error.message") + ": cannot create collected data for client-timeout"); setCanceled(true); return; } } if (handler == null) { m_log.info("download handler is null"); setCancelMessage(Messages.getString("performance.get.collecteddata.error.message") + ": cannot create collected data for client-timeout"); setCanceled(true); return; } File file = new File(this.fileDir, name); boolean ret = file.createNewFile(); if (!ret) { m_log.warn("file is already exist."); } fileOutputStream = new FileOutputStream(file); handler.writeTo(fileOutputStream); m_log.info("download perf file = " + name + ", succeed !"); m_log.debug("download() succeed!"); } catch (HinemosUnknown_Exception e) { setCancelMessage( Messages.getString("performance.get.collecteddata.error.message") + ":" + e.getMessage()); setCanceled(true); m_log.warn("download()", e); } catch (InvalidUserPass_Exception e) { setCancelMessage( Messages.getString("performance.get.collecteddata.error.message") + ":" + e.getMessage()); setCanceled(true); m_log.warn("download()", e); } catch (InvalidRole_Exception e) { setCancelMessage( Messages.getString("performance.get.collecteddata.error.message") + ":" + e.getMessage()); setCanceled(true); m_log.warn("download()", e); } catch (InterruptedException e) { setCancelMessage( Messages.getString("performance.get.collecteddata.error.message") + ":" + e.getMessage()); setCanceled(true); m_log.warn("download()", e); } catch (IOException e) { setCancelMessage( Messages.getString("performance.get.collecteddata.error.write") + ":" + e.getMessage()); setCanceled(true); m_log.warn("download()", e); } finally { try { if (fileOutputStream != null) { fileOutputStream.close(); } } catch (IOException e) { setCancelMessage( Messages.getString("performance.get.collecteddata.error.write") + ":" + e.getMessage()); setCanceled(true); m_log.warn("download()", e); } } }