List of usage examples for javax.xml.parsers SAXParserFactory newSAXParser
public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException;
From source file:efen.parsewiki.WikipediaDocumentSequence.java
@Override public DocumentIterator iterator() throws IOException { final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); saxParserFactory.setNamespaceAware(true); final MutableString nameSpaceAccumulator = new MutableString(); final ObjectOpenHashSet<MutableString> nameSpacesAccumulator = new ObjectOpenHashSet<MutableString>(); final ArrayBlockingQueue<DocumentFactory> freeFactories = new ArrayBlockingQueue<DocumentFactory>(16); for (int i = freeFactories.remainingCapacity(); i-- != 0;) freeFactories.add(this.factory.copy()); final ArrayBlockingQueue<DocumentAndFactory> readyDocumentsAndFactories = new ArrayBlockingQueue<DocumentAndFactory>( freeFactories.size());/* w ww. j a v a2s.c o m*/ final SAXParser parser; try { parser = saxParserFactory.newSAXParser(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } final DefaultHandler handler = new DefaultHandler() { private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); private boolean inText; private boolean inTitle; private boolean inId; private boolean inTimestamp; private boolean inNamespaceDef; private boolean redirect; private MutableString text = new MutableString(); private MutableString title = new MutableString(); private MutableString id = new MutableString(); private MutableString timestamp = new MutableString(); private final Reference2ObjectMap<Enum<?>, Object> metadata = new Reference2ObjectOpenHashMap<Enum<?>, Object>(); { metadata.put(PropertyBasedDocumentFactory.MetadataKeys.ENCODING, "UTF-8"); metadata.put(MetadataKeys.REDIRECT, redirectAnchors); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if ("page".equals(localName)) { redirect = inText = inTitle = inId = inTimestamp = false; text.length(0); title.length(0); id.length(0); timestamp.length(0); } else if ("text".equals(localName)) inText = true; else if ("title".equals(localName) && title.length() == 0) inTitle = true; // We catch only the first id/title elements. else if ("id".equals(localName) && id.length() == 0) inId = true; else if ("timestamp".equals(localName) && timestamp.length() == 0) inTimestamp = true; else if ("redirect".equals(localName)) { redirect = true; if (attributes.getValue("title") != null) // Accumulate the title of the page as virtual text of the redirect page. synchronized (redirectAnchors) { final String link = Encoder.encodeTitleToUrl(attributes.getValue("title"), true); redirectAnchors.add( new AnchorExtractor.Anchor(new MutableString(baseURL.length() + link.length()) .append(baseURL).append(link), title.copy())); } } else if ("namespace".equals(localName)) { // Found a new namespace inNamespaceDef = true; nameSpaceAccumulator.length(0); } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { if ("namespace".equals(localName)) { // Collecting a namespace if (nameSpaceAccumulator.length() != 0) nameSpacesAccumulator.add(nameSpaceAccumulator.copy().toLowerCase()); return; } if ("namespaces".equals(localName)) { // All namespaces collected nameSpaces = ImmutableSet.copyOf(nameSpacesAccumulator); return; } if (!redirect) { if ("title".equals(localName)) { // Set basic metadata for the page metadata.put(PropertyBasedDocumentFactory.MetadataKeys.TITLE, title.copy()); String link = Encoder.encodeTitleToUrl(title.toString(), true); metadata.put(PropertyBasedDocumentFactory.MetadataKeys.URI, new MutableString(baseURL.length() + link.length()).append(baseURL).append(link)); inTitle = false; } else if ("id".equals(localName)) { metadata.put(MetadataKeys.ID, Long.valueOf(id.toString())); inId = false; } else if ("timestamp".equals(localName)) { try { metadata.put(MetadataKeys.LASTEDIT, dateFormat.parse(timestamp.toString())); } catch (ParseException e) { throw new RuntimeException(e.getMessage(), e); } inTimestamp = false; } else if ("text".equals(localName)) { inText = false; if (!keepNamespaced) { // Namespaces are case-insensitive and language-dependent final int pos = title.indexOf(':'); if (pos != -1 && isATrueNamespace(title.substring(0, pos))) return; } try { final MutableString html = new MutableString(); DocumentFactory freeFactory; try { freeFactory = freeFactories.take(); } catch (InterruptedException e) { throw new RuntimeException(e.getMessage(), e); } if (parseText) { if (DISAMBIGUATION.search(text) != -1) { // It's a disambiguation page. /* Roi's hack: duplicate links using the page title, so the generic name will end up as anchor text. */ final MutableString newLinks = new MutableString(); for (int start = 0, end; (start = BRACKETS_OPEN.search(text, start)) != -1; start = end) { end = start; final int endOfLink = text.indexOfAnyOf(END_OF_DISAMBIGUATION_LINK, start); // Note that we don't escape title because we are working at the Wikipedia raw text level. if (endOfLink != -1) { newLinks.append(text.array(), start, endOfLink - start).append('|') .append(title).append("]]\n"); end = endOfLink; } end++; } text.append(newLinks); } // We separate categories by OXOXO, so we don't get overflowing phrases. final MutableString category = new MutableString(); for (int start = 0, end; (start = CATEGORY_START.search(text, start)) != -1; start = end) { end = BRACKETS_CLOSED.search(text, start += CATEGORY_START.length()); if (end != -1) category.append(text.subSequence(start, end)).append(" OXOXO "); else break; } metadata.put(MetadataKeys.CATEGORY, category); // Heuristics to get the first paragraph metadata.put(MetadataKeys.FIRSTPAR, new MutableString()); String plainText = new WikiModel(imageBaseURL, linkBaseURL) .render(new PlainTextConverter(true), text.toString()); for (int start = 0; start < plainText.length(); start++) { //System.err.println("Examining " + plainText.charAt( start ) ); if (Character.isWhitespace(plainText.charAt(start))) continue; if (plainText.charAt(start) == '{') { //System.err.print( "Braces " + start + " text: \"" + plainText.subSequence( start, start + 10 ) + "\" -> " ); start = BRACES_CLOSED.search(plainText, start); //System.err.println( start + " text: \"" + plainText.subSequence( start, start + 10 ) + "\"" ); if (start == -1) break; start++; } else if (plainText.charAt(start) == '[') { start = BRACKETS_CLOSED.search(plainText, start); if (start == -1) break; start++; } else { final int end = plainText.indexOf('\n', start); if (end != -1) metadata.put(MetadataKeys.FIRSTPAR, new MutableString(plainText.substring(start, end)));//new MutableString( new WikiModel( imageBaseURL, linkBaseURL ).render( new PlainTextConverter( true ), text.substring( start, end ).toString() ) ) ); break; } } try { WikiModel wikiModel = new WikiModel(imageBaseURL, linkBaseURL); wikiModel.render(new HTMLConverter(), text.toString(), html, false, false); final Map<String, String> categories = wikiModel.getCategories(); // Put back category links in the page (they have been parsed by bliki and to not appear anymore in the HTML rendering) for (Entry<String, String> entry : categories.entrySet()) { final String key = entry.getKey(); final String value = entry.getValue().trim(); if (value.length() != 0) // There are empty such things html.append("\n<a href=\"").append(baseURL).append("Category:") .append(Encoder.encodeTitleToUrl(key, true)).append("\">") .append(HtmlEscapers.htmlEscaper().escape(key)) .append("</a>\n"); } } catch (Exception e) { LOGGER.error("Unexpected exception while parsing " + title, e); } } readyDocumentsAndFactories.put(new DocumentAndFactory( freeFactory.getDocument(IOUtils.toInputStream(html, Charsets.UTF_8), new Reference2ObjectOpenHashMap<Enum<?>, Object>(metadata)), freeFactory)); } catch (InterruptedException e) { throw new RuntimeException(e.getMessage(), e); } catch (IOException e) { throw new RuntimeException(e.getMessage(), e); } } } } @Override public void characters(char[] ch, int start, int length) throws SAXException { if (inText && parseText) text.append(ch, start, length); if (inTitle) title.append(ch, start, length); if (inId) id.append(ch, start, length); if (inTimestamp) timestamp.append(ch, start, length); if (inNamespaceDef) { nameSpaceAccumulator.append(ch, start, length); inNamespaceDef = false; // Dirty, but it works } } @Override public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { if (inText && parseText) text.append(ch, start, length); if (inTitle) title.append(ch, start, length); } }; final Thread parsingThread = new Thread() { public void run() { try { InputStream in = new FileInputStream(wikipediaXmlDump); if (bzipped) in = new BZip2CompressorInputStream(in); parser.parse( new InputSource(new InputStreamReader(new FastBufferedInputStream(in), Charsets.UTF_8)), handler); readyDocumentsAndFactories.put(END); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } }; parsingThread.start(); return new AbstractDocumentIterator() { private DocumentFactory lastFactory; @Override public Document nextDocument() throws IOException { try { final DocumentAndFactory documentAndFactory = readyDocumentsAndFactories.take(); if (lastFactory != null) freeFactories.put(lastFactory); if (documentAndFactory == END) return null; lastFactory = documentAndFactory.factory; return documentAndFactory.document; } catch (InterruptedException e) { throw new RuntimeException(e.getMessage(), e); } } }; }
From source file:com.onehippo.gogreen.importer.NonWorkflowWikiImporterComponent.java
@Override public void doAction(HstRequest request, HstResponse response) throws HstComponentException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser;//from w w w . j av a2 s . c om String numberStr = request.getParameter("number"); int numberOfWikiDocs; try { numberOfWikiDocs = Integer.parseInt(numberStr); } catch (NumberFormatException e) { response.setRenderParameter("message", "number must be a number but was '" + numberStr + "'"); return; } if (numberOfWikiDocs <= 0) { response.setRenderParameter("message", "number must be a number larger than 0 but was '" + numberStr + "'"); return; } String offsetStr = request.getParameter("offset"); int offset = 0; if (StringUtils.isNotBlank(offsetStr)) { try { offset = Integer.parseInt(offsetStr); if (offset < 0) { offset = 0; } } catch (NumberFormatException e) { offset = 0; } } String wikiContentFileSystem = request.getParameter("filesystemLocation"); if (StringUtils.isEmpty(wikiContentFileSystem)) { throw new IllegalArgumentException("filesystemLocation should be correct"); } String type = request.getParameter("type"); if (type == null || !(type.equals("news") || type.equals("products"))) { response.setRenderParameter("message", "Invalid type. Must be 'news' or 'products' but was '" + type + "'"); throw new IllegalArgumentException("type should be set"); } try { parser = factory.newSAXParser(); File f = new File(wikiContentFileSystem); WikiPediaToJCRHandler handler = null; long start = System.currentTimeMillis(); try { Session writableSession = this.getPersistableSession(request); Node baseNode = writableSession .getNode(request.getRequestContext().getSiteContentBaseBean().getPath()); Node wikiFolder; if (!baseNode.hasNode(type)) { wikiFolder = baseNode.addNode(type, "hippostd:folder"); wikiFolder.addMixin("mix:referenceable"); } else { wikiFolder = baseNode.getNode(type); } handler = new WikiPediaToJCRHandler(wikiFolder, numberOfWikiDocs, offset, type); parser.parse(f, handler); } catch (ForcedStopException e) { // succesfull handler quits after numberOfWikiDocs has been achieved } catch (Exception e) { log.warn("Exception during importing wikipedia docs", e); response.setRenderParameter("message", "An exception happened. Did not import wiki docs. " + e.toString()); } response.setRenderParameter("message", "Successfully imported '" + handler.count + "' wikipedia documents in '" + (System.currentTimeMillis() - start) + "' ms."); } catch (ParserConfigurationException | SAXException e) { response.setRenderParameter("message", "Did not import wiki: " + e.toString()); } }
From source file:com.kdmanalytics.toif.assimilator.Assimilator.java
/** * Load the kdm file. parse the input file. * /*from w ww .ja va 2 s .com*/ * @param xmlFile * the input file * @param out * output stream * @return the xml handler for the kdm data. * @throws IOException * @throws ToifInternalException */ public KdmXmlHandler load(File xmlFile, PipedOutputStream out) throws IOException, RepositoryException, ToifException { RepositoryConnection tempCon = null; KdmXmlHandler kdmXmlHandler = null; PrintWriter pw = null; try { File tempFile = new File(System.getProperty("java.io.tmpdir") + File.separator + "KDMRepository"); deleteDirectory(tempFile); tempFile.deleteOnExit(); Repository tempRepository = new SailRepository(new NativeStore(tempFile)); tempRepository.initialize(); tempCon = tempRepository.getConnection(); /** * The factory used to drive the parsing process. * */ SAXParserFactory factory = null; // Use the default (non-validating) parser factory = SAXParserFactory.newInstance(); SAXParser saxParser; saxParser = factory.newSAXParser(); // Have to parse the file once to determine the maximum id; KdmXmiIdHandler idHandler = new KdmXmiIdHandler(); // Need to set the stream to UTF-8 ti ensure that we correctly // handle // characters in Strings InputStream inputStream = new FileInputStream(xmlFile); InputStreamReader inputReader = new InputStreamReader(inputStream, "UTF-8"); InputSource inputSource = new InputSource(inputReader); inputSource.setEncoding("UTF-8"); saxParser.parse(inputSource, idHandler); tempCon.setAutoCommit(false); // Control commit for speed pw = new PrintWriter(out); kdmXmlHandler = new KdmXmlHandler(pw, repository, idHandler.getMaxId()); // Parse the input saxParser.parse(xmlFile, kdmXmlHandler); // Commit postLoad data kdmXmlHandler.postLoad(); tempCon.commit(); tempCon.clear(); } catch (ParserConfigurationException | SAXException ex) { final String msg = "Parser exception encountered:"; LOG.error(msg, ex); throw new ToifException(msg, ex); } finally { if (pw != null) { pw.flush(); pw.close(); } if (null != tempCon) { tempCon.close(); } } return kdmXmlHandler; }
From source file:jp.co.fttx.rakuphotomail.mail.store.WebDavStore.java
private DataSet processRequest(String url, String method, String messageBody, HashMap<String, String> headers, boolean needsParsing) throws MessagingException { DataSet dataset = new DataSet(); if (RakuPhotoMail.DEBUG && RakuPhotoMail.DEBUG_PROTOCOL_WEBDAV) { Log.v(RakuPhotoMail.LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'"); }/*from w ww . j av a2s.c om*/ if (url == null || method == null) { return dataset; } getHttpClient(); try { StringEntity messageEntity = null; if (messageBody != null) { messageEntity = new StringEntity(messageBody); messageEntity.setContentType("text/xml"); } InputStream istream = sendRequest(url, method, messageEntity, headers, true); if (istream != null && needsParsing) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); WebDavHandler myHandler = new WebDavHandler(); xr.setContentHandler(myHandler); xr.parse(new InputSource(istream)); dataset = myHandler.getDataSet(); } catch (SAXException se) { Log.e(RakuPhotoMail.LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se)); throw new MessagingException("SAXException in processRequest() ", se); } catch (ParserConfigurationException pce) { Log.e(RakuPhotoMail.LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce)); throw new MessagingException("ParserConfigurationException in processRequest() ", pce); } istream.close(); } } catch (UnsupportedEncodingException uee) { Log.e(RakuPhotoMail.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee)); throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee); } catch (IOException ioe) { Log.e(RakuPhotoMail.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe)); throw new MessagingException("IOException in processRequest() ", ioe); } return dataset; }
From source file:com.fsck.k9.mail.store.webdav.WebDavStore.java
private DataSet processRequest(String url, String method, String messageBody, Map<String, String> headers, boolean needsParsing) throws MessagingException { DataSet dataset = new DataSet(); if (K9MailLib.isDebug() && DEBUG_PROTOCOL_WEBDAV) { Log.v(LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'"); }/*from w w w. ja v a2 s .c o m*/ if (url == null || method == null) { return dataset; } getHttpClient(); try { StringEntity messageEntity = null; if (messageBody != null) { messageEntity = new StringEntity(messageBody); messageEntity.setContentType("text/xml"); } InputStream istream = sendRequest(url, method, messageEntity, headers, true); if (istream != null && needsParsing) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); WebDavHandler myHandler = new WebDavHandler(); xr.setContentHandler(myHandler); xr.parse(new InputSource(istream)); dataset = myHandler.getDataSet(); } catch (SAXException se) { Log.e(LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se)); throw new MessagingException("SAXException in processRequest() ", se); } catch (ParserConfigurationException pce) { Log.e(LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce)); throw new MessagingException("ParserConfigurationException in processRequest() ", pce); } istream.close(); } } catch (UnsupportedEncodingException uee) { Log.e(LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee)); throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee); } catch (IOException ioe) { Log.e(LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe)); throw new MessagingException("IOException in processRequest() ", ioe); } return dataset; }
From source file:br.pcfl.up.mail.store.WebDavStore.java
private DataSet processRequest(String url, String method, String messageBody, HashMap<String, String> headers, boolean needsParsing) throws MessagingException { DataSet dataset = new DataSet(); if (Up.DEBUG && Up.DEBUG_PROTOCOL_WEBDAV) { Log.v(Up.LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'"); }//from ww w. ja v a 2 s .c o m if (url == null || method == null) { return dataset; } getHttpClient(); try { StringEntity messageEntity = null; if (messageBody != null) { messageEntity = new StringEntity(messageBody); messageEntity.setContentType("text/xml"); } InputStream istream = sendRequest(url, method, messageEntity, headers, true); if (istream != null && needsParsing) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); WebDavHandler myHandler = new WebDavHandler(); xr.setContentHandler(myHandler); xr.parse(new InputSource(istream)); dataset = myHandler.getDataSet(); } catch (SAXException se) { Log.e(Up.LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se)); throw new MessagingException("SAXException in processRequest() ", se); } catch (ParserConfigurationException pce) { Log.e(Up.LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce)); throw new MessagingException("ParserConfigurationException in processRequest() ", pce); } istream.close(); } } catch (UnsupportedEncodingException uee) { Log.e(Up.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee)); throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee); } catch (IOException ioe) { Log.e(Up.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe)); throw new MessagingException("IOException in processRequest() ", ioe); } return dataset; }
From source file:cn.mailchat.mail.store.WebDavStore.java
private DataSet processRequest(String url, String method, String messageBody, HashMap<String, String> headers, boolean needsParsing) throws MessagingException { DataSet dataset = new DataSet(); if (MailChat.DEBUG && MailChat.DEBUG_PROTOCOL_WEBDAV) { Log.v(MailChat.LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'"); }// w ww. j a v a2 s . c o m if (url == null || method == null) { return dataset; } getHttpClient(); try { StringEntity messageEntity = null; if (messageBody != null) { messageEntity = new StringEntity(messageBody); messageEntity.setContentType("text/xml"); } InputStream istream = sendRequest(url, method, messageEntity, headers, true); if (istream != null && needsParsing) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); WebDavHandler myHandler = new WebDavHandler(); xr.setContentHandler(myHandler); xr.parse(new InputSource(istream)); dataset = myHandler.getDataSet(); } catch (SAXException se) { Log.e(MailChat.LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se)); throw new MessagingException("SAXException in processRequest() ", se); } catch (ParserConfigurationException pce) { Log.e(MailChat.LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce)); throw new MessagingException("ParserConfigurationException in processRequest() ", pce); } istream.close(); } } catch (UnsupportedEncodingException uee) { Log.e(MailChat.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee)); throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee); } catch (IOException ioe) { Log.e(MailChat.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe)); throw new MessagingException("IOException in processRequest() ", ioe); } return dataset; }
From source file:com.top.Ertebat.mail.store.WebDavStore.java
private DataSet processRequest(String url, String method, String messageBody, HashMap<String, String> headers, boolean needsParsing) throws MessagingException { DataSet dataset = new DataSet(); if (Ertebat.DEBUG && Ertebat.DEBUG_PROTOCOL_WEBDAV) { Log.v(Ertebat.LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'"); }/*from www.j a v a 2 s . c o m*/ if (url == null || method == null) { return dataset; } getHttpClient(); try { StringEntity messageEntity = null; if (messageBody != null) { messageEntity = new StringEntity(messageBody); messageEntity.setContentType("text/xml"); } InputStream istream = sendRequest(url, method, messageEntity, headers, true); if (istream != null && needsParsing) { try { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); WebDavHandler myHandler = new WebDavHandler(); xr.setContentHandler(myHandler); xr.parse(new InputSource(istream)); dataset = myHandler.getDataSet(); } catch (SAXException se) { Log.e(Ertebat.LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se)); throw new MessagingException("SAXException in processRequest() ", se); } catch (ParserConfigurationException pce) { Log.e(Ertebat.LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce)); throw new MessagingException("ParserConfigurationException in processRequest() ", pce); } istream.close(); } } catch (UnsupportedEncodingException uee) { Log.e(Ertebat.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee)); throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee); } catch (IOException ioe) { Log.e(Ertebat.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe)); throw new MessagingException("IOException in processRequest() ", ioe); } return dataset; }
From source file:forseti.admon.JAdmCFDDlg.java
@SuppressWarnings({ "rawtypes", "unchecked" }) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doPost(request, response); String adm_cfdi_dlg = ""; request.setAttribute("adm_cfdi_dlg", adm_cfdi_dlg); String mensaje = ""; short idmensaje = -1; if (request.getContentType() != null && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) { if (!getSesion(request).getRegistrado()) { irApag("/forsetiweb/errorAtributos.jsp", request, response); return; } else {/*from www . j av a 2 s. com*/ if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } try { Vector archivos = new Vector(); DiskFileUpload fu = new DiskFileUpload(); List items = fu.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) archivos.addElement(item); } SubirArchivosCFD(request, response, archivos); return; } catch (FileUploadException e) { e.printStackTrace(); return; } } } if (request.getParameter("proceso") != null && !request.getParameter("proceso").equals("")) { if (request.getParameter("proceso").equals("VERIFICAR_CFD")) { // Verificacion if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (VerificarCertificados(request, response)) AgregarCertificado(request, response); return; } else if (request.getParameter("proceso").equals("CAMBIAR_EMISOR")) { System.out.println(request.getParameter("cfd_regimenfiscal")); // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametros(request, response)) { Cambiar(request, response); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response); return; } else if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ACTUALIZAR")) { irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("AGREGAR_CERTIFICADO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } Integer subir_archivos = new Integer(2); request.setAttribute("subir_archivos", subir_archivos); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFAdmCFDDlg&archivo_1=cer&archivo_2=key&proceso=AGREGAR_CERTIFICADO&subproceso=ENVIAR", request, response); return; } else if (request.getParameter("proceso").equals("AGREGAR_EXPEDITOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.AGREGAR, "EXP"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ACTUALIZAR")) { irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CAMBIAR_EXPEDITOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.CAMBIAR, "EXP"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ACTUALIZAR")) { irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("AGREGAR_RECEPTOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.AGREGAR, "REC"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CAMBIAR_RECEPTOR")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_AGREGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_AGREGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_AGREGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { // Verificacion if (VerificarParametrosExpRec(request, response)) { AgregarCambiarExpRec(request, response, JForsetiApl.CAMBIAR, "REC"); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de CAMBIADO para cargar el cambio { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_exprec.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("GENERAR_CE")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { if (request.getParameter("subproceso") != null && request.getParameter("subproceso").equals("ENVIAR")) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JAdmPeriodosSet set = new JAdmPeriodosSet(request); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (!set.getAbsRow(0).getCerrado()) { idmensaje = 1; mensaje = "PRECAUCION: No se pueden generar los archivos XML de la Contabilidada Electrnica, porque el mes seleccionado no esta cerrado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } GenerarXMLCE(request, response, ano, mes); return; } else { getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/administracion/adm_cfd_dlg_cegen.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CONSULTAR_ST")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede consultar el registro de estatus porque no existe el archivo generado en este mes."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } irApag("/forsetiweb/administracion/adm_cfd_dlg_cons.jsp", request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("CONSULTAR_ARCHIVOS")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede consultar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } String nomArchFech; if (mes < 10) nomArchFech = "-" + ano + "-0" + mes; else nomArchFech = "-" + ano + "-" + mes; String nomArch = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml"; String salida = ""; File f = new File(nomArch); FileReader fr = null; BufferedReader br = null; try { fr = new FileReader(f); br = new BufferedReader(fr); String s; while ((s = br.readLine()) != null) { salida += s + "\n"; } br.close(); } catch (IOException e1) { salida += e1; } response.setContentType("application/xml"); PrintWriter out = response.getWriter(); out.print(salida); /* String nombres[] = { nomArch + "catalogo" + nomArchFech + ".xml", nomArch + "balanza" + nomArchFech + ".xml", nomArch + "polizas" + nomArchFech + ".xml", nomArch + "CE" + nomArchFech + ".log"}; String destinos[] = { "catalogo" + nomArchFech + ".xml", "balanza" + nomArchFech + ".xml", "polizas" + nomArchFech + ".xml", "CE" + nomArchFech + ".log" }; JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), ("CE" + nomArchFech + ".zip"), nombres, destinos); */ return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("VALIDAR_ARCHIVOS")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede validar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } String nomArchFech; if (mes < 10) nomArchFech = "-" + ano + "-0" + mes; else nomArchFech = "-" + ano + "-" + mes; String nomArch = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml"; //Validacin String ERROR = "", archivoXML = ""; boolean NAME_SPACE_AWARE = true; boolean VALIDATING = true; String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; String SCHEMA_LANGUAGE_VAL = "http://www.w3.org/2001/XMLSchema"; String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; String sFichXsd = "/usr/local/forseti/rec/"; if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CECAT")) sFichXsd += "CatalogoCuentas_1_1.xsd"; else if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CEBAL")) sFichXsd += "BalanzaComprobacion_1_1.xsd"; else sFichXsd += "PolizasPeriodo_1_1.xsd"; try { FileReader file = new FileReader(nomArch); BufferedReader buff = new BufferedReader(file); boolean eof = false; while (!eof) { String line = buff.readLine(); if (line == null) eof = true; else archivoXML += line + "\n"; } InputStream is = new ByteArrayInputStream(archivoXML.getBytes()); Reader xsdReader = new FileReader(sFichXsd); //System.out.println("xmlReader:" + pathxml + "\n" + "xsdReader:" + sFichXsd + "\n" + "xsdReader2:" + sFichXsd2); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(NAME_SPACE_AWARE); factory.setValidating(VALIDATING); SAXParser parser = factory.newSAXParser(); parser.setProperty(SCHEMA_LANGUAGE, SCHEMA_LANGUAGE_VAL); parser.setProperty(SCHEMA_SOURCE, new InputSource(xsdReader)); DefaultHandler handler = new XmlDefaultHandler(); //parser.parse(new InputSource(xmlReader), handler); parser.parse(is, handler); } catch (FactoryConfigurationError e) { e.printStackTrace(); ERROR += "FactoryConfiguration: " + e.getMessage() + "<br>"; } catch (ParserConfigurationException e) { e.printStackTrace(); ERROR += "ParserConfiguration: " + e.getMessage() + "<br>"; } catch (SAXException e) { e.printStackTrace(); ERROR += "SAX: " + e.getMessage() + "<br>"; } catch (IOException e) { e.printStackTrace(); ERROR += "IO: " + e.getMessage() + "<br>"; } if (!ERROR.equals("")) { idmensaje = 3; mensaje = "ERROR: Al verificar sintaxis del XML:" + "<br>" + ERROR; getSesion(request).setID_Mensaje(idmensaje, mensaje); } else { idmensaje = 0; mensaje = "El XML se verific y paso las pruebas de sintaxis"; getSesion(request).setID_Mensaje(idmensaje, mensaje); } irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("DESCARGAR_ARCHIVOS")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_GCEXML")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_GCEXML"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_GCEXML", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { int ano = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 1)); int mes = Integer.parseInt(JUtil.Elm(request.getParameter("id"), 2)); JContCEModuloSet set = new JContCEModuloSet(request, getSesion(request).getSesion("ADM_CFDI").getEspecial()); set.m_Where = "Ano = '" + ano + "' and Mes = '" + mes + "'"; set.Open(); if (set.getAbsRow(0).getGenerado().equals("N")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede descargar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } String nomArchFech; if (mes < 10) nomArchFech = "-" + ano + "-0" + mes; else nomArchFech = "-" + ano + "-" + mes; SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml"); try { Document document = (Document) builder.build(xmlFile); Element CEGeneral = document.getRootElement(); String nomArchZIP = CEGeneral.getAttributeValue("RFC") + CEGeneral.getAttributeValue("Anio") + CEGeneral.getAttributeValue("Mes"); String destino = CEGeneral.getAttributeValue("RFC") + CEGeneral.getAttributeValue("Anio") + CEGeneral.getAttributeValue("Mes"); if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial().equals("CECAT")) // es de egresos (Compras. Gastos) { nomArchZIP += "CT.zip"; destino += "CT.xml"; } else if (JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() .equals("CEBAL")) { nomArchZIP += "B" + CEGeneral.getAttributeValue("TipoEnvio") + ".zip"; destino += "B" + CEGeneral.getAttributeValue("TipoEnvio") + ".xml"; } else { nomArchZIP += "PL.zip"; destino += "PL.xml"; } String nombres[] = { "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/CE/" + JUtil.getSesion(request).getSesion("ADM_CFDI").getEspecial() + nomArchFech + ".xml" }; String destinos[] = { destino }; JBajarArchivo fd = new JBajarArchivo(); fd.doDownloadMultipleFilesInZip(response, getServletConfig().getServletContext(), nomArchZIP, nombres, destinos); return; } catch (JDOMException e) { idmensaje = 1; mensaje = "PRECAUCION: No se puede descargar el archivo porque este mes no esta generado aun."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("DESENLAZAR_DOCUMENTO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_DESENLAZAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_DESENLAZAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_DESENLAZAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { String status = JUtil.getSesion(request).getSesion("ADM_CFDI").getStatus(); if (!status.equals("OTROS")) { JCFDCompViewSet set = new JCFDCompViewSet(request, status); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (set.getNumRows() < 1) { idmensaje = 3; mensaje = "ERROR: No se puede desenlazar el registro porque no existe"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede desenlazar el documento porque aun no se encuentra enlazado a ningn registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { JCFDCompOtrSet set = new JCFDCompOtrSet(request); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede desenlazar el documento porque aun no se encuentra enlazado a ningn registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } DesenlazarDocumento(request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else if (request.getParameter("proceso").equals("ELIMINAR_DOCUMENTO")) { // Revisa si tiene permisos if (!getSesion(request).getPermiso("ADM_CFDI_CARGAR")) { idmensaje = 3; mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_CARGAR"); getSesion(request).setID_Mensaje(idmensaje, mensaje); RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "ADM_CFDI_CARGAR", "ACFD||||", mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (request.getParameter("id") != null) { String[] valoresParam = request.getParameterValues("id"); if (valoresParam.length == 1) { String status = JUtil.getSesion(request).getSesion("ADM_CFDI").getStatus(); if (!status.equals("OTROS")) { JCFDCompViewSet set = new JCFDCompViewSet(request, status); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (set.getNumRows() < 1) { idmensaje = 3; mensaje = "ERROR: No se puede eliminar el registro porque no existe"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } if (!set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede eliminar el documento porque ya se encuentra enlazado a un registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { JCFDCompOtrSet set = new JCFDCompOtrSet(request); set.m_Where = "ID_CFD = '" + p(request.getParameter("id")) + "'"; set.Open(); if (!set.getAbsRow(0).getFSI_Tipo().equals("ENT")) { idmensaje = 1; mensaje = "PRECAUCION: No se puede eliminar el documento porque ya se encuentra enlazado a un registro."; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } EliminarDocumento(request, response); return; } else { idmensaje = 1; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else // si no se mandan parametros, manda a error { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } } else { idmensaje = 3; mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiweb/caja_mensajes.jsp", request, response); return; } }