List of usage examples for org.xml.sax XMLReader parse
public void parse(String systemId) throws IOException, SAXException;
From source file:org.globus.mds.bigindex.impl.database.xml.xindice.XindiceDriver.java
/** * Adds a Document to a collection, where the input Document is in String form. * @param parentCol - name of the parent collection * @param docstr - String representation of the Document to add * @param docName - name of the document * @return String - the document ID./*from www . ja va 2 s. c o m*/ */ public String addDocumentString(String parentCol, String docstr, String docName) throws Exception { checkInitialized(); Collection col = null; String docID = null; try { if (this.isProfiling) { this.performanceLogger.start(); } // Create a collection instance String colURI = normalizeCollectionURI(parentCol, this.isLocal); col = DatabaseManager.getCollection(colURI); if (col == null) { String err = "XINDICE ERROR: Collection not found! " + colURI; if (logger.isDebugEnabled()) { logger.debug(err); } throw new Exception(err); } // Parse in XML using Xerces StringReader reader = new StringReader(docstr); SAXParserFactory spf = javax.xml.parsers.SAXParserFactory.newInstance(); spf.setNamespaceAware(true); XMLReader saxReader = spf.newSAXParser().getXMLReader(); StringSerializer ser = new StringSerializer(null); saxReader.setContentHandler(ser); saxReader.setProperty("http://xml.org/sax/properties/lexical-handler", ser); saxReader.parse(new InputSource(reader)); reader.close(); // Create the XMLResource and store the document XMLResource resource = (XMLResource) col.createResource(docName, "XMLResource"); resource.setContent(ser.toString()); col.storeResource(resource); docID = resource.getId(); if (logger.isDebugEnabled()) { logger.debug("STORED Document: " + colURI + "/" + docID); } resource = null; } finally { if (col != null) { col.close(); } col = null; if (this.isProfiling) { this.performanceLogger.stop("addDocumentString"); } } return docID; }
From source file:org.h2gis.drivers.osm.OSMParser.java
/** * Read the OSM file and create its corresponding tables. * * @param inputFile/*ww w . ja v a 2 s . c o m*/ * @param tableName * @param connection * @param progress * @return * @throws SQLException */ public boolean read(Connection connection, String tableName, File inputFile, ProgressVisitor progress) throws SQLException { this.progress = progress.subProcess(100); // Initialisation final boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); boolean success = false; TableLocation requestedTable = TableLocation.parse(tableName, isH2); String osmTableName = requestedTable.getTable(); checkOSMTables(connection, isH2, requestedTable, osmTableName); createOSMDatabaseModel(connection, isH2, requestedTable, osmTableName); FileInputStream fs = null; try { fs = new FileInputStream(inputFile); this.fc = fs.getChannel(); this.fileSize = fc.size(); // Given the file size and an average node file size. // Skip how many nodes in order to update progression at a step of 1% readFileSizeEachNode = Math.max(1, (this.fileSize / AVERAGE_NODE_SIZE) / 100); nodeCountProgress = 0; XMLReader parser = XMLReaderFactory.createXMLReader(); parser.setErrorHandler(this); parser.setContentHandler(this); if (inputFile.getName().endsWith(".osm")) { parser.parse(new InputSource(fs)); } else if (inputFile.getName().endsWith(".osm.gz")) { parser.parse(new InputSource(new GZIPInputStream(fs))); } else if (inputFile.getName().endsWith(".osm.bz2")) { parser.parse(new InputSource(new BZip2CompressorInputStream(fs))); } success = true; } catch (SAXException ex) { throw new SQLException(ex); } catch (IOException ex) { throw new SQLException("Cannot parse the file " + inputFile.getAbsolutePath(), ex); } finally { try { if (fs != null) { fs.close(); } } catch (IOException ex) { throw new SQLException("Cannot close the file " + inputFile.getAbsolutePath(), ex); } // When the reading ends, close() method has to be called if (nodePreparedStmt != null) { nodePreparedStmt.close(); } if (nodeTagPreparedStmt != null) { nodeTagPreparedStmt.close(); } if (wayPreparedStmt != null) { wayPreparedStmt.close(); } if (wayTagPreparedStmt != null) { wayTagPreparedStmt.close(); } if (wayNodePreparedStmt != null) { wayNodePreparedStmt.close(); } if (relationPreparedStmt != null) { relationPreparedStmt.close(); } if (relationTagPreparedStmt != null) { relationTagPreparedStmt.close(); } if (nodeMemberPreparedStmt != null) { nodeMemberPreparedStmt.close(); } if (wayMemberPreparedStmt != null) { wayMemberPreparedStmt.close(); } if (relationMemberPreparedStmt != null) { relationMemberPreparedStmt.close(); } if (tagPreparedStmt != null) { tagPreparedStmt.close(); } } return success; }
From source file:org.h2gis.functions.io.osm.OSMParser.java
/** * Read the OSM file and create its corresponding tables. * * @param inputFile/*from www .java 2 s .c om*/ * @param tableName * @param connection * @param progress * @return * @throws SQLException */ public boolean read(Connection connection, String tableName, File inputFile, ProgressVisitor progress) throws SQLException { this.progress = progress.subProcess(100); // Initialisation final boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); boolean success = false; TableLocation requestedTable = TableLocation.parse(tableName, isH2); String osmTableName = requestedTable.getTable(); checkOSMTables(connection, isH2, requestedTable, osmTableName); createOSMDatabaseModel(connection, isH2, requestedTable, osmTableName); FileInputStream fs = null; try { fs = new FileInputStream(inputFile); this.fc = fs.getChannel(); this.fileSize = fc.size(); // Given the file size and an average node file size. // Skip how many nodes in order to update progression at a step of 1% readFileSizeEachNode = Math.max(1, (this.fileSize / AVERAGE_NODE_SIZE) / 100); nodeCountProgress = 0; XMLReader parser = XMLReaderFactory.createXMLReader(); parser.setErrorHandler(this); parser.setContentHandler(this); if (inputFile.getName().endsWith(".osm")) { parser.parse(new InputSource(fs)); } else if (inputFile.getName().endsWith(".osm.gz")) { parser.parse(new InputSource(new GZIPInputStream(fs))); } else if (inputFile.getName().endsWith(".osm.bz2")) { parser.parse(new InputSource(new BZip2CompressorInputStream(fs))); } else { throw new SQLException("Supported formats are .osm, .osm.gz, .osm.bz2"); } success = true; } catch (SAXException ex) { throw new SQLException(ex); } catch (IOException ex) { throw new SQLException("Cannot parse the file " + inputFile.getAbsolutePath(), ex); } finally { try { if (fs != null) { fs.close(); } } catch (IOException ex) { throw new SQLException("Cannot close the file " + inputFile.getAbsolutePath(), ex); } // When the reading ends, close() method has to be called if (nodePreparedStmt != null) { nodePreparedStmt.close(); } if (nodeTagPreparedStmt != null) { nodeTagPreparedStmt.close(); } if (wayPreparedStmt != null) { wayPreparedStmt.close(); } if (wayTagPreparedStmt != null) { wayTagPreparedStmt.close(); } if (wayNodePreparedStmt != null) { wayNodePreparedStmt.close(); } if (relationPreparedStmt != null) { relationPreparedStmt.close(); } if (relationTagPreparedStmt != null) { relationTagPreparedStmt.close(); } if (nodeMemberPreparedStmt != null) { nodeMemberPreparedStmt.close(); } if (wayMemberPreparedStmt != null) { wayMemberPreparedStmt.close(); } if (relationMemberPreparedStmt != null) { relationMemberPreparedStmt.close(); } if (tagPreparedStmt != null) { tagPreparedStmt.close(); } } return success; }
From source file:org.hw.parlance.ParlanceActivity.java
/** * Method to parse XML response from Yahoo URL and add markers of restaurants on the map *//*from w w w . j a v a 2 s. c o m*/ private synchronized void xmlParsing(String XMLResponse) { try { URLConnection conn = new URL(XMLResponse).openConnection(); conn.setConnectTimeout(50000); conn.setReadTimeout(50000); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); ItemHandler itemHandler = new ItemHandler(); xr.setContentHandler(itemHandler); xr.parse(new InputSource(conn.getInputStream())); _itemAdapter.arr = itemHandler.getList(); for (int index = 0; index < _itemAdapter.arr.size(); index++) { Marker temp_marker = mMap.addMarker(new MarkerOptions() .position(new LatLng(Double.parseDouble(_itemAdapter.arr.get(index).getLat()), Double.parseDouble(_itemAdapter.arr.get(index).getLon()))) .title(_itemAdapter.arr.get(index).getName()) .icon(BitmapDescriptorFactory.fromResource(numMarkerIcon[index]))); this._markList.add(temp_marker); } _itemAdapter.notifyDataSetChanged(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.infoscoop.request.filter.DetectTypeFilter.java
public static void main(String[] args) throws Exception { new DetectTypeFilter(); DetectManager h = new DetectTypeFilter.DetectManager(); XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(h);/*from w w w . jav a 2 s. c o m*/ reader.parse(new InputSource(new FileInputStream("src/main/webapp/generalMessages_rss.xml"))); }
From source file:org.infoscoop.request.filter.DetectTypeFilter.java
protected InputStream postProcess(ProxyRequest request, InputStream responseStream) throws IOException { JSONArray result = new JSONArray(); //BufferedInputStream responseStream = new BufferedInputStream(_responseStream); String contentType = request.getResponseHeader("Content-Type"); String encoding = getContentTypeCharset(contentType); responseStream = new ByteArrayInputStream(ProxyRequest.stream2Bytes(responseStream)); //FIXME XMLFilter.skipEmptyLine(responseStream); try {/*w w w .j a v a 2 s .com*/ DetectManager handler = null; if (isXml(contentType, responseStream)) { try { DetectManager h = new DetectManager(); XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(h); reader.parse(new InputSource(responseStream)); handler = h; } catch (SAXException e) { log.warn("parse error", e); responseStream.reset(); } } if (handler == null) { handler = new DetectManager(); if (encoding == null) { encoding = findEncoding(responseStream);//TODO: responseStream.reset(); } org.cyberneko.html.parsers.SAXParser nekoParser = new org.cyberneko.html.parsers.SAXParser(); nekoParser.setProperty("http://cyberneko.org/html/properties/names/elems", "lower"); nekoParser.setProperty("http://cyberneko.org/html/properties/names/attrs", "lower"); if (encoding != null) nekoParser.setProperty("http://cyberneko.org/html/properties/default-encoding", encoding); Transformer transformer = TransformerFactory.newInstance().newTransformer(); SAXSource source = new SAXSource(nekoParser, new InputSource(responseStream)); SAXResult saxResult = new SAXResult(handler); transformer.transform(source, saxResult); } result = handler.getResult(request); } catch (Exception e) { log.error("Url: [" + request.getTargetURL() + "] detect widget type failed.", e); //return 500;TODO: return null; } byte[] resultBytes = result.toString().getBytes("UTF-8"); request.putResponseHeader("Content-Type", "text/plain; charset=UTF-8"); request.putResponseHeader("Content-Length", String.valueOf(resultBytes.length)); //request.setResponseBody(new ByteArrayInputStream( resultBytes )); return new ByteArrayInputStream(resultBytes); }
From source file:org.infoscoop.request.filter.ical.ICalendarUtil.java
public static Reader convertRdf2Ics(InputStream is) throws SAXException, IOException { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(false);// w w w .j av a 2s . c o m factory.setNamespaceAware(true); XMLReader reader = null; try { reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); } catch (ParserConfigurationException e) { log.error("", e); } Rdf2IcsHandler xmlHandler = new Rdf2IcsHandler(); reader.setContentHandler(xmlHandler); reader.parse(new InputSource(is)); return new StringReader(xmlHandler.getResult()); }
From source file:org.infoscoop.request.filter.RssFilter.java
public static byte[] process(ProxyRequest request, InputStream responseStream) throws IOException { String dateTimeFormat = request.getRequestHeader("X-IS-DATETIMEFORMAT"); if (dateTimeFormat != null) { dateTimeFormat = URLDecoder.decode(dateTimeFormat, "UTF-8"); }/*from w w w. j a v a 2s.c om*/ String freshTime = request.getRequestHeader("X-IS-FRESHTIME"); String maxCountString = request.getRequestHeader("X-IS-RSSMAXCOUNT"); int maxCount = Integer.MAX_VALUE; if (maxCountString != null) { try { int paramMaxCount = Integer.parseInt(maxCountString); if (paramMaxCount > 0) { maxCount = paramMaxCount; } } catch (NumberFormatException e) { log.warn("rssmaxcount \"" + maxCountString + "\" isn't integer value."); } } // Filtering String titleFilter = request.getRequestHeader("X-IS-TITLEFILTER"); if (titleFilter != null) titleFilter = URLDecoder.decode(titleFilter, "UTF-8"); String creatorFilter = request.getRequestHeader("X-IS-CREATORFILTER"); if (creatorFilter != null) creatorFilter = URLDecoder.decode(creatorFilter, "UTF-8"); String categoryFilter = request.getRequestHeader("X-IS-CATEGORYFILTER"); if (categoryFilter != null) categoryFilter = URLDecoder.decode(categoryFilter, "UTF-8"); // String freshDays = request.getRequestHeader("_freshdays"); // String logoffDateTime = request.getRequestHeader("_logoffdatetime"); BufferedInputStream bis = new BufferedInputStream(responseStream); boolean isAtom = isAtom(bis); XMLFilter.skipEmptyLine(bis); String pageSizeStr = request.getRequestHeader("X-IS-PAGESIZE"); int pageSize = -1; if (pageSizeStr != null) { try { pageSize = Integer.parseInt(pageSizeStr); } catch (NumberFormatException ex) { log.warn("init parameter \"rssPageSize\" has illegal value"); } } //if( pageSize < 0 ) // pageSize = 20; long start = System.currentTimeMillis(); RssResultBuilder resultBuilder = new RssJsonResultBuilder(pageSize); RssHandler handler; if (isAtom) { handler = new AtomHandler(resultBuilder, dateTimeFormat, freshTime, maxCount, titleFilter, creatorFilter, categoryFilter); } else { handler = new RssHandler(resultBuilder, dateTimeFormat, freshTime, maxCount, titleFilter, creatorFilter, categoryFilter); } try { XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setProperty("http://xml.org/sax/properties/lexical-handler", handler); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(handler); reader.parse(new InputSource(bis)); if (log.isDebugEnabled()) { long end = System.currentTimeMillis(); log.debug("Rss parse duration:" + (end - start)); } int pageCount = resultBuilder.getPageCount(); if (pageCount > 1) { String uid = request.getPortalUid(); if (uid == null) uid = request.getRequestHeader("MSDPortal-SessionId"); for (int pageNum = 0; pageNum < pageCount; pageNum++) { RssCacheDAO.newInstance().insertCache(uid, request.getTargetURL(), pageNum, resultBuilder.getResult(pageNum)); } } return resultBuilder.getResult(0).getBytes("UTF-8"); } catch (SAXException e) { log.error("Xml file at URL [ " + request.getTargetURL() + "] is failed to be analysed.[" + e.getLocalizedMessage() + "]", e); resultBuilder.setStatusCode(1); resultBuilder.setMessage("Failed to analyse xml.: " + e.getLocalizedMessage()); return resultBuilder.getResult().getBytes("UTF-8"); } catch (IOException e) { log.error("Xml file at URL [ " + request.getTargetURL() + "] is failed to be analysed.[" + e.getLocalizedMessage() + "]", e); resultBuilder.setStatusCode(1); resultBuilder.setMessage("Failed to analyse xml.: " + e.getLocalizedMessage()); return resultBuilder.getResult().getBytes("UTF-8"); } catch (ParserConfigurationException e) { log.error("Xml file at URL [ " + request.getTargetURL() + "] is failed to be analysed.[" + e.getLocalizedMessage() + "]", e); resultBuilder.setStatusCode(1); resultBuilder.setMessage("Failed to analyse xml.: " + e.getLocalizedMessage()); return resultBuilder.getResult().getBytes("UTF-8"); } finally { bis.close(); } }
From source file:org.infoscoop.web.MultiRssServlet.java
private void mergeRssAnd2JSON(HttpServletRequest request, HttpServletResponse response, String uid, String widgetId, int pageSize, NodeList urlList) throws Exception { try {/*from www .j a v a2s . c o m*/ RssJsonResultBuilder resultBuilder = new SortedRssJsonResultBuilder(pageSize); String dateTimeFormat = request.getHeader("X-IS-DATETIMEFORMAT"); if (dateTimeFormat != null) { dateTimeFormat = URLDecoder.decode(dateTimeFormat, "UTF-8"); } String freshTime = request.getHeader("X-IS-FRESHTIME"); String maxCountString = request.getHeader("X-IS-RSSMAXCOUNT"); int maxCount = 1000; if (maxCountString != null) { try { int paramMaxCount = Integer.parseInt(maxCountString); if (paramMaxCount >= 0) { maxCount = paramMaxCount; } } catch (NumberFormatException e) { log.warn("rssmaxcount \"" + maxCountString + "\" isn't integer value."); } } // Norrowing String titleFilter = request.getHeader("X-IS-TITLEFILTER"); if (titleFilter != null) titleFilter = URLDecoder.decode(titleFilter, "UTF-8"); String creatorFilter = request.getHeader("X-IS-CREATORFILTER"); if (creatorFilter != null) creatorFilter = URLDecoder.decode(creatorFilter, "UTF-8"); String categoryFilter = request.getHeader("X-IS-CATEGORYFILTER"); if (categoryFilter != null) categoryFilter = URLDecoder.decode(categoryFilter, "UTF-8"); int DEFAULT_TIMEOUT = 15 * 1000; boolean modified = false; Map cacheHeaders = new HashMap(); Map errorMap = new HashMap(); List siteCacheHeaders = new ArrayList(); for (int i = 0; i < urlList.getLength(); i++) { Element rssEl = (Element) urlList.item(i); String url = rssEl.getAttribute("url"); ProxyRequest proxyRequest = new ProxyRequest(url, "NoOperation"); proxyRequest.setLocales(request.getLocales()); proxyRequest.setPortalUid(uid); int timeout = request.getIntHeader("MSDPortal-Timeout") - 1000; proxyRequest.setTimeout((timeout > 0) ? timeout : DEFAULT_TIMEOUT); //proxyRequest.setTimeout(timeout); proxyRequest.addIgnoreHeader("user-agent"); proxyRequest.addIgnoreHeader("X-IS-DATETIMEFORMAT"); proxyRequest.addIgnoreHeader("X-IS-FRESHTIME"); proxyRequest.addIgnoreHeader("X-IS-REFRESH"); proxyRequest.addIgnoreHeader("X-IS-RSSMAXCOUNT"); proxyRequest.addIgnoreHeader("X-IS-PAGESIZE"); Enumeration headers = request.getHeaderNames(); while (headers.hasMoreElements()) { String headerName = (String) headers.nextElement(); proxyRequest.putRequestHeader(headerName, request.getHeader(headerName)); } NodeList rssChildNodes = rssEl.getElementsByTagName("header"); for (int j = 0; j < rssChildNodes.getLength(); j++) { Element header = (Element) rssChildNodes.item(j); if (header.getFirstChild() != null) { String name = header.getAttribute("name"); String value = header.getFirstChild().getNodeValue(); if (name == null || name.trim().length() == 0 || value == null || value.trim().length() == 0) continue; proxyRequest.putRequestHeader(name, value); } } int statusCode = 0; String methodType = rssEl.getAttribute("method"); try { if ("post".equals(methodType)) { statusCode = proxyRequest.executePost(); } else { statusCode = proxyRequest.executeGet(); } } catch (SocketTimeoutException ex) { log.error("url: [" + url + "] socket timeout.", ex); errorMap.put(url, new Integer(HttpStatusCode.MSD_SC_TIMEOUT)); } catch (ConnectTimeoutException ex) { log.error("url: [" + url + "] connection timeout.", ex); errorMap.put(url, new Integer(500)); } catch (SocketException ex) { log.error("url: [" + url + "] socket error.", ex); errorMap.put(url, new Integer(HttpStatus.SC_NOT_FOUND)); } catch (IOException ex) { log.error("url: [" + url + "] I/O error.", ex); errorMap.put(url, new Integer(HttpStatus.SC_NOT_FOUND)); } catch (Exception ex) { log.error("url: [" + url + "]" + ex.getMessage(), ex); errorMap.put(url, new Integer(500)); } BufferedInputStream bis = null; if (errorMap.containsKey(url)) { // nothing } else if (statusCode == 204) { log.warn("url:[" + url + "] is no content #" + statusCode); modified = true; } else if (statusCode == 304) { log.warn("url:[" + url + "] is not modified #" + statusCode); } else if (statusCode != 200) { log.error("url:[" + url + "] had error status code #" + statusCode); errorMap.put(url, new Integer(statusCode)); } else { log.info("url:[" + url + "] is succed #" + statusCode); try { modified = true; bis = new BufferedInputStream(proxyRequest.getResponseBody()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[10240]; int c; while ((c = bis.read(buf)) != -1) { baos.write(buf, 0, c); baos.flush(); } bis.close(); byte[] data = baos.toByteArray(); baos.close(); //RssCacheDAO.newInstance().insertCache(uid, widgetId+url, -1,data ); Map responseHeaders = proxyRequest.getResponseHeaders(); String lastModifiedName = "Last-Modified".toLowerCase(); if (responseHeaders.containsKey(lastModifiedName)) { siteCacheHeaders.add(lastModifiedName); siteCacheHeaders.add(responseHeaders.get(lastModifiedName)); } String etagName = "ETag".toLowerCase(); if (responseHeaders.containsKey(etagName)) { siteCacheHeaders.add(etagName); siteCacheHeaders.add(responseHeaders.get(etagName)); } if (siteCacheHeaders.size() > 0) { cacheHeaders.put(url, siteCacheHeaders.toArray()); siteCacheHeaders.clear(); } bis = new BufferedInputStream(new ByteArrayInputStream(data)); } catch (IOException ex) { log.error("rss reading " + url + " is failed.", ex); cacheHeaders.remove(url); errorMap.put(url, new Integer(500)); bis.close(); bis = null; } } if (bis == null) continue; RssHandler handler; boolean isAtom = RssFilter.isAtom(bis); XMLFilter.skipEmptyLine(bis); if (isAtom) { handler = new AtomHandler(resultBuilder, dateTimeFormat, freshTime, maxCount, titleFilter, creatorFilter, categoryFilter, i); } else { handler = new RssHandler(resultBuilder, dateTimeFormat, freshTime, maxCount, titleFilter, creatorFilter, categoryFilter, i); } try { XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.setContentHandler(handler); reader.parse(new InputSource(bis)); } catch (SAXException e) { log.info("Parsing rss " + url + " is failed.", e); cacheHeaders.remove(url); errorMap.put(url, new Integer(HttpStatusCode.MSD_SC_CONTENT_PARSE_ERROR)); } } if (!modified && errorMap.isEmpty()) { log.warn("multi rss is not modified."); response.setStatus(304); return; } else { try { long freshTimeLong = new Date().getTime(); if (freshTime != null) freshTimeLong = Long.parseLong(freshTime.trim()); setOldData(resultBuilder, uid, widgetId, freshTimeLong, titleFilter, creatorFilter, categoryFilter); } catch (NumberFormatException e) { log.error("", e); } //} int pageCount = resultBuilder.getPageCount(); // We create the result cash by all means. //if( pageCount > 1 ) { for (int pageNum = 0; pageNum < pageCount; pageNum++) { RssCacheDAO.newInstance().insertCache(uid, widgetId, pageNum, resultBuilder.getResult(pageNum)); } //} } response.addHeader("Content-Type", "text/plain; charset=UTF-8"); String result = resultBuilder.getResult(); if (!errorMap.isEmpty()) { JSONObject errors = new JSONObject(errorMap); result = "{errors:" + errors.toString() + "," + result.substring(result.indexOf("{") + 1); } if (!cacheHeaders.isEmpty()) { StringBuffer cacheHeadersBuf = new StringBuffer(); cacheHeadersBuf.append("cacheHeaders : {"); for (Iterator keys = cacheHeaders.keySet().iterator(); keys.hasNext();) { String url = (String) keys.next(); Object[] headers = (Object[]) cacheHeaders.get(url); cacheHeadersBuf.append("\"").append(url).append("\" : {"); for (int i = 0; i < headers.length; i += 2) { cacheHeadersBuf.append("\"").append(headers[i]).append("\""); cacheHeadersBuf.append(" : '").append(headers[i + 1]).append("'"); if (i + 2 < headers.length) cacheHeadersBuf.append(","); } cacheHeadersBuf.append("}"); if (keys.hasNext()) cacheHeadersBuf.append(","); } cacheHeadersBuf.append("}"); result = "{" + cacheHeadersBuf.toString() + "," + result.substring(result.indexOf("{") + 1); } response.setContentLength(result.getBytes("UTF-8").length); OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream(), "UTF-8"); try { out.write(result); out.flush(); } catch (SocketException ex) { // ignore client abort exception } finally { if (out != null) { try { out.close(); } catch (IOException ex) { // ignore } } } } catch (Exception e) { log.error("unexpected error occurred.", e); response.sendError(500, e.getMessage()); } }
From source file:org.infoscoop.web.ValidationServlet.java
private static boolean checkXml(String text) { try {/*from w ww.j a va 2 s.c o m*/ XMLReader reader = factory.newSAXParser().getXMLReader(); reader.setEntityResolver(NoOpEntityResolver.getInstance()); reader.parse(text); return true; } catch (SAXException e) { return false; } catch (IOException e) { return false; } catch (ParserConfigurationException e) { return false; } }