Imprimir archivos en java
Aquí nuevamente te comento que ya arregle mi netbeans, desintalaciòn completa (así es a veces), luego instalación del jdk1.6, seteo de las siguientes variables de entorno:
JAVA_HOME
C:\Archivos de programa\Java\jdk1.6.0_20
JRE_HOME
C:\Archivos de programa\Java\jdk1.6.0_20
Path
C:\Archivos de programa\Java\jdk1.6.0_20\bin
CLASSPATH
C:\Archivos de programa\Java\jdk1.6.0_20\src.zip;C:\Archivos de programa\Java\jdk1.6.0_20\lib\tools.jar;C:\Archivos de programa\Java\jdk1.6.0_20\jre\lib\rt.jar;.
Y luego reinstalación del netbeans, ya pude probar el código y con un java aplication perfecto funciona de mil maravillas pero en una aplicación web nada que ver me da el siguiente error
Received 'java.awt.HeadlessException' when invoking action listener '#{AccesoAutorizadoBean.buttonsiPanel_processAction}' for component 'modalPnlOkButton'
java. ¿Awt. HeadlessException
tienes alguna idea de a que se deba esto?
JAVA_HOME
C:\Archivos de programa\Java\jdk1.6.0_20
JRE_HOME
C:\Archivos de programa\Java\jdk1.6.0_20
Path
C:\Archivos de programa\Java\jdk1.6.0_20\bin
CLASSPATH
C:\Archivos de programa\Java\jdk1.6.0_20\src.zip;C:\Archivos de programa\Java\jdk1.6.0_20\lib\tools.jar;C:\Archivos de programa\Java\jdk1.6.0_20\jre\lib\rt.jar;.
Y luego reinstalación del netbeans, ya pude probar el código y con un java aplication perfecto funciona de mil maravillas pero en una aplicación web nada que ver me da el siguiente error
Received 'java.awt.HeadlessException' when invoking action listener '#{AccesoAutorizadoBean.buttonsiPanel_processAction}' for component 'modalPnlOkButton'
java. ¿Awt. HeadlessException
tienes alguna idea de a que se deba esto?
1 respuesta
Respuesta de krlosnow
1
1
krlosnow, Mas de 15 años de experiencia en Java, Javascript y HTML
No entiendo. Si estás haciendo una aplicación web, ¿cómo el error te puede dar en algo relacionado con un botón? Tendrías que haber eliminado de tu código todo lo referente a componentes gráficos, y usar el java. Awt. Desktop sin más. Nada de listeners. Si quieres, pásame el código y lo veo, pero como te decía, borra todo lo referente a componentes gráficos y listeners. No hacen falta. Estás programando un servlet o un Action de Struts o algo parecido, ¿no?
Estimado Experto te envío mi código la programación la estoy haciendo con JSF Managed Bean la parte del negocio y la parte de la presentación con xhtml con icefaces.
Aquí el código fuente del Bean hace algunas cosas más pero el botón que me importa a hora es el buttonImprimir_processAction
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ec.mil.ejercito.proceso.baking;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.context.effects.JavascriptContext;
import ec.mil.ejercito.comun.baking.BusquedaDocumentoBean;
import ec.mil.ejercito.siada.entity.RegistroAutorizacion;
import ec.mil.ejercito.siada.session.ConsultasFacadeRemote;
import ec.mil.ejercito.siada.session.ControlAccesoDocFacadeRemote;
import ec.mil.ejercito.siada.session.RegistroAutorizacionFacadeRemote;
import ec.mil.ejercito.siada.util.Funciones;
import java.awt.Desktop;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
/**
*
* @author Joho
*/
public class AccesoAutorizadoBean {
// private Documento documento = new Documento();
// private PeticionAutorizacion peticionautorizacion = new PeticionAutorizacion();
// private List<Documento> ldocumento = new ArrayList<Documento>();
// @EJB
// private DocumentoFacadeRemote documentoFacade;
private Integer contador = 0;
@EJB
private ConsultasFacadeRemote consultasFacade;
private String cedula = null;
private Funciones obmfun = new Funciones();
private String mensajeg = "";
private String mensaje = "";
private String laccion = "";
private RegistroAutorizacion registroautorizacion = new RegistroAutorizacion();
private List<RegistroAutorizacion> lregistroautorizacion = new ArrayList<RegistroAutorizacion>();
@EJB
private RegistroAutorizacionFacadeRemote registroautorizacionFacade;
// private List<PeticionAutorizacion> lpeticionautorizacion = new ArrayList<PeticionAutorizacion>();
// @EJB
// private PeticionAutorizacionFacadeRemote peticionautFacade;
private boolean control = true;
@EJB
private ControlAccesoDocFacadeRemote controlaccesoFacade;
private EnvioMail compenviomail = new EnvioMail();
private boolean contenviomail = true;
private String lpatharchivo = "";
private String lmailenvio = "";
Desktop impresion;
//<editor-fold defaultstate="collapsed" desc="GETTER Y SETTER">
public String getLmailenvio() {
return lmailenvio;
}
public void setLmailenvio(String lmailenvio) {
this.lmailenvio = lmailenvio;
}
public String getLaccion() {
return laccion;
}
public void setLaccion(String laccion) {
this.laccion = laccion;
}
public String getMensaje() {
return mensaje;
}
public void setMensaje(String mensaje) {
this.mensaje = mensaje;
}
public String getMensajeg() {
return mensajeg;
}
public void setMensajeg(String mensajeg) {
this.mensajeg = mensajeg;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="DESPLIEGUE TABLA DOCUMENTO AUTORIZADO">
public List<RegistroAutorizacion> getLregistroautorizacion() {
if (control) {
recuperaLista();
control = false;
}
return lregistroautorizacion;
}
public void setLregistroautorizacion(List<RegistroAutorizacion> lregistroautorizacion) {
this.lregistroautorizacion = lregistroautorizacion;
}
public RegistroAutorizacion getRegistroautorizacion() {
return registroautorizacion;
}
public void setRegistroautorizacion(RegistroAutorizacion registroautorizacion) {
this.registroautorizacion = registroautorizacion;
}
public void recuperaLista() {
String sql = "";
Date fecha = new Date();
fecha = new java.sql.Date(fecha.getTime());
sql = " o.rauAutorizado = 'S' and o.memAutorizado.memCedula = '" + cedula + "'and o.rauFechaCaducidad >= ( '" + fecha + "') and ";
lregistroautorizacion.clear();
lregistroautorizacion = registroautorizacionFacade.findBySql(sql);
sql = "";
}
public void rowSelector1_processAction(RowSelectorEvent rse) {
try {
int selectedRowIndex = rse.getRow();
// documento = ldocumento.get(selectedRowIndex);
registroautorizacion = lregistroautorizacion.get(selectedRowIndex);
this.deshabilitarCancelar = false;
if (registroautorizacion.getPauCodigo().getPauDescarga().toString().equals("S")) {
this.deshabilitarDescarga = false;
} else {
this.deshabilitarDescarga = true;
}
if (registroautorizacion.getPauCodigo().getPauLectura().toString().equals("S")) {
this.deshabilitarCopia = false;
} else {
this.deshabilitarCopia = true;
}
if (registroautorizacion.getPauCodigo().getPauVisualizacion().toString().equals("S")) {
this.deshabilitarVisualizar = false;
} else {
this.deshabilitarVisualizar = true;
}
contador = 0;
} catch (Exception e) {
}
}
private boolean filasel = false;
public boolean isFilasel() {
RegistroAutorizacion registrolocal = new RegistroAutorizacion();
try {
registrolocal = lregistroautorizacion.get(contador);
mensajeg = "";
} catch (Exception e) {
}
contador++;
return registroautorizacion.equals(registrolocal);
}
public void setFilasel(boolean filasel) {
this.filasel = filasel;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="DESPLIEGUE DEL PANEL POPUP">
private PanelPopup panelPopup1 = new PanelPopup();
public PanelPopup getPanelPopup1() {
return panelPopup1;
}
public void setPanelPopup1(PanelPopup pb) {
this.panelPopup1 = pb;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="DECLARACIONE DE BOTONES">
private boolean deshabilitarDescarga = true;
private boolean deshabilitarCancelar = true;
private boolean deshabilitarCopia = true;
private boolean deshabilitarTexto = true;
private boolean deshabilitarVisualizar = true;
public boolean isDeshabilitarVisualizar() {
return deshabilitarVisualizar;
}
public void setDeshabilitarVisualizar(boolean deshabilitarVisualizar) {
this.deshabilitarVisualizar = deshabilitarVisualizar;
}
public boolean isDeshabilitarDescarga() {
return deshabilitarDescarga;
}
public void setDeshabilitarDescarga(boolean deshabilitarDescarga) {
this.deshabilitarDescarga = deshabilitarDescarga;
}
public boolean isDeshabilitarTexto() {
return deshabilitarTexto;
}
public void setDeshabilitarTexto(boolean deshabilitarTexto) {
this.deshabilitarTexto = deshabilitarTexto;
}
public boolean isDeshabilitarCancelar() {
return deshabilitarCancelar;
}
public void setDeshabilitarCancelar(boolean deshabilitarCancelar) {
this.deshabilitarCancelar = deshabilitarCancelar;
}
public boolean isDeshabilitarCopia() {
return deshabilitarCopia;
}
public void setDeshabilitarCopia(boolean deshabilitarCopia) {
this.deshabilitarCopia = deshabilitarCopia;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="OPCIONES DEL PANEL POPUP">
public void buttonModal_processAction(ActionEvent ae) {
abrirPanel(!panelPopup1.isRendered());
}
public void abrirPanel(boolean evento) {
panelPopup1.setRendered(evento);
}
public void setVisualizar(ActionEvent ae) {
setMensaje("Visualizar el archivo");
this.setLaccion("v");
abrirPanel(!panelPopup1.isRendered());
}
public void setDescargar(ActionEvent ae) {
setMensaje("Descargar el archivo");
this.setLaccion("d");
abrirPanel(!panelPopup1.isRendered());
}
public void setCopiar(ActionEvent ae) {
setMensaje("Copiar el archivo");
this.setLaccion("c");
abrirPanel(!panelPopup1.isRendered());
}
public void setImprimir(ActionEvent ae) {
setMensaje("Imprimir el archivo");
this.setLaccion("i");
abrirPanel(!panelPopup1.isRendered());
}
public void buttonsiPanel_processAction(ActionEvent ae) throws IOException {
abrirPanel(!panelPopup1.isRendered());
if (laccion.equals("d")) {
this.buttondescargaArchivo_processAction(ae);
}
if (laccion.equals("c")) {
buttonEnviaMail_processAction(ae);
}
if (laccion.equals("v")) {
buttonVisualizar_processAction(ae);
}
if (laccion.equals("i")) {
buttonImprimir_processAction(ae);
}
}
//</editor-fold>
/** Creates a new instance of AccesoAutorizadoBean */
public AccesoAutorizadoBean() {
abrirPanel(!panelPopup1.isRendered());
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
try {
if (request.getParameter("cedula") != null && !request.getParameter("cedula").equalsIgnoreCase("")) {
cedula = this.obmfun.desencriptar(request.getParameter("cedula"));
} else {
cedula = null;
}
} catch (SQLException ex) {
Logger.getLogger(AccesoAutorizadoBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//<editor-fold defaultstate="collapsed" desc="BOTON DE DESCARGA DEL ARCHIVO">
public void buttondescargaArchivo_processAction(ActionEvent ae) throws IOException {
System.out.println("Entro a la descarga");
try {
String locpatharchivo = "c:\\Descarga\\";
File directorio2 = new File(locpatharchivo);
if (!directorio2.exists()) {
directorio2.mkdirs();
}
BusquedaDocumentoBean busdoc = new BusquedaDocumentoBean();
busdoc.descargaArchivo(registroautorizacion.getDocCodigo().getDocCodigo().toString(), locpatharchivo);
locpatharchivo = busdoc.getPath();
mensajeg = "El Documento ha sido Descargado en " + locpatharchivo;
this.deshabilitarCancelar = true;
this.deshabilitarDescarga = true;
//Guardo la pista en el contro de acceso para descarga
controlaccesoFacade.insertControl(cedula, "N", "S", "N", "N", registroautorizacion.getDocCodigo());
} catch (FileNotFoundException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BOTON CANCELAR">
public void buttonCancelar_processAction(ActionEvent ae) {
try {
registroautorizacion = new RegistroAutorizacion();
deshabilitarDescarga = true;
this.deshabilitarCopia = true;
this.deshabilitarCancelar = true;
} catch (Exception e) {
System.out.println("" + e.getLocalizedMessage());
}
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="ENVIAR MAIL">
public void descargaArchivo() {
String lpath = null;
try {
BusquedaDocumentoBean busdoc = new BusquedaDocumentoBean();
busdoc.descargaArchivo(registroautorizacion.getDocCodigo().getDocCodigo().toString(), lpath);
lpatharchivo = busdoc.getPath();
} catch (FileNotFoundException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void enviarMail() {
try {
String lcontraseña = "jorozco";
String mailRemitente = "[email protected]";
if (mailRemitente != null && mailRemitente.toString().length() > 0) {
String subject = "Copia de archivo"; //textFieldTitulo.getText().toString(); // the subject line
String message = "Se le informa que se le ha enviado la copia del documento" + this.registroautorizacion.getDocCodigo().getDocCodigoDoc(); // the body of the message
String mailhost = "190.95.203.5";//"mail.ejercito.mil.ec";
//Verifico que sea un mail
Pattern p = Pattern.compile("@");
Matcher m = p.matcher(mailRemitente);
if (!m.find()) {
this.mensajeg = "Por favor revisa la direccion e-mail del remitente";
System.out.println("La cadena no tiene arroba");
} else {
String user = mailRemitente.toString().substring(0, m.start()); // user ID
compenviomail.configMail(mailhost, user, lcontraseña);
compenviomail.setFrom(mailRemitente.toString());
compenviomail.setSubject(subject);
compenviomail.setTo(lmailenvio.toString());
if (registroautorizacion.getDocCodigo().getDocNombreDoc() != null && registroautorizacion.getDocCodigo().getDocNombreDoc().length() > 0) {
compenviomail.addAttach(lpatharchivo + registroautorizacion.getDocCodigo().getNombreDesencriptado());
}
compenviomail.addContent(message);
compenviomail.sendMultipart();
compenviomail.eliminaAttach();
this.mensajeg = " Mail enviado ";
System.out.println("[ Mail enviado ]");
File dir = new File(lpatharchivo);
borrarDirectorio(dir);
dir.delete();
contenviomail = true;
}
} else {
contenviomail = false;
this.mensajeg = "Ingrese la dirección e-mail del remitente";
}
} catch (Exception ex) {
contenviomail = false;
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BOTON ENVIAR MAIL">
public void buttonEnviaMail_processAction(ActionEvent ae) {
descargaArchivo();
enviarMail();
//Guardo la pista en el contro de acceso para copia
controlaccesoFacade.insertControl(cedula, "N", "N", "N", "S", registroautorizacion.getDocCodigo());
File dir = new File(lpatharchivo);
borrarDirectorio(dir);
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BORRAR EL DIRECTORIO TEMPORAL">
public void borrarDirectorio(File directorio) {
File[] ficheros = directorio.listFiles();
for (int i = 0; i < ficheros.length; i++) {
if (ficheros.isDirectory()) {
borrarDirectorio(ficheros);
}
ficheros.delete();
}
this.lpatharchivo = null;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BOTON VISUALIZAR">
public void buttonVisualizar_processAction(ActionEvent ae) {
String cadenaParametros = "";
String url = "/SIADA-war/VerDocumento";
String metodo = "post";
String target = "_blank";
String sql = "SELECT DOC_DIGITAL FROM ADOC_DOCUMENTO WHERE DOC_CODIGO = ?";
cadenaParametros += " {'extension' : '" + registroautorizacion.getDocCodigo().getDocExtension() + "','codigo' : '" + registroautorizacion.getDocCodigo().getDocCodigo() + "' , 'sql' : '" + sql + "' }";
JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "crea_form('" + url + "','" + metodo + "','detalle', " + cadenaParametros + ");");
//Guardo la pista en el contro de acceso para visualizacion
controlaccesoFacade.insertControl(cedula, "S", "N", "N", "N", registroautorizacion.getDocCodigo());
}
//</editor-fold>
public void buttonImprimir_processAction(ActionEvent ae) {
impresion = Desktop.getDesktop();
File archivo = new File("C:/Descarga/AVANCE JULIO.doc");
if (archivo.exists()) {
try {
impresion.print(archivo); //abre el archivo
} catch (IOException ex) {
Logger.getLogger(AccesoAutorizadoBean.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Se ha impreso el archivo");
}
}
}
Aquí el código fuente del Bean hace algunas cosas más pero el botón que me importa a hora es el buttonImprimir_processAction
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ec.mil.ejercito.proceso.baking;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.context.effects.JavascriptContext;
import ec.mil.ejercito.comun.baking.BusquedaDocumentoBean;
import ec.mil.ejercito.siada.entity.RegistroAutorizacion;
import ec.mil.ejercito.siada.session.ConsultasFacadeRemote;
import ec.mil.ejercito.siada.session.ControlAccesoDocFacadeRemote;
import ec.mil.ejercito.siada.session.RegistroAutorizacionFacadeRemote;
import ec.mil.ejercito.siada.util.Funciones;
import java.awt.Desktop;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.ejb.EJB;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
/**
*
* @author Joho
*/
public class AccesoAutorizadoBean {
// private Documento documento = new Documento();
// private PeticionAutorizacion peticionautorizacion = new PeticionAutorizacion();
// private List<Documento> ldocumento = new ArrayList<Documento>();
// @EJB
// private DocumentoFacadeRemote documentoFacade;
private Integer contador = 0;
@EJB
private ConsultasFacadeRemote consultasFacade;
private String cedula = null;
private Funciones obmfun = new Funciones();
private String mensajeg = "";
private String mensaje = "";
private String laccion = "";
private RegistroAutorizacion registroautorizacion = new RegistroAutorizacion();
private List<RegistroAutorizacion> lregistroautorizacion = new ArrayList<RegistroAutorizacion>();
@EJB
private RegistroAutorizacionFacadeRemote registroautorizacionFacade;
// private List<PeticionAutorizacion> lpeticionautorizacion = new ArrayList<PeticionAutorizacion>();
// @EJB
// private PeticionAutorizacionFacadeRemote peticionautFacade;
private boolean control = true;
@EJB
private ControlAccesoDocFacadeRemote controlaccesoFacade;
private EnvioMail compenviomail = new EnvioMail();
private boolean contenviomail = true;
private String lpatharchivo = "";
private String lmailenvio = "";
Desktop impresion;
//<editor-fold defaultstate="collapsed" desc="GETTER Y SETTER">
public String getLmailenvio() {
return lmailenvio;
}
public void setLmailenvio(String lmailenvio) {
this.lmailenvio = lmailenvio;
}
public String getLaccion() {
return laccion;
}
public void setLaccion(String laccion) {
this.laccion = laccion;
}
public String getMensaje() {
return mensaje;
}
public void setMensaje(String mensaje) {
this.mensaje = mensaje;
}
public String getMensajeg() {
return mensajeg;
}
public void setMensajeg(String mensajeg) {
this.mensajeg = mensajeg;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="DESPLIEGUE TABLA DOCUMENTO AUTORIZADO">
public List<RegistroAutorizacion> getLregistroautorizacion() {
if (control) {
recuperaLista();
control = false;
}
return lregistroautorizacion;
}
public void setLregistroautorizacion(List<RegistroAutorizacion> lregistroautorizacion) {
this.lregistroautorizacion = lregistroautorizacion;
}
public RegistroAutorizacion getRegistroautorizacion() {
return registroautorizacion;
}
public void setRegistroautorizacion(RegistroAutorizacion registroautorizacion) {
this.registroautorizacion = registroautorizacion;
}
public void recuperaLista() {
String sql = "";
Date fecha = new Date();
fecha = new java.sql.Date(fecha.getTime());
sql = " o.rauAutorizado = 'S' and o.memAutorizado.memCedula = '" + cedula + "'and o.rauFechaCaducidad >= ( '" + fecha + "') and ";
lregistroautorizacion.clear();
lregistroautorizacion = registroautorizacionFacade.findBySql(sql);
sql = "";
}
public void rowSelector1_processAction(RowSelectorEvent rse) {
try {
int selectedRowIndex = rse.getRow();
// documento = ldocumento.get(selectedRowIndex);
registroautorizacion = lregistroautorizacion.get(selectedRowIndex);
this.deshabilitarCancelar = false;
if (registroautorizacion.getPauCodigo().getPauDescarga().toString().equals("S")) {
this.deshabilitarDescarga = false;
} else {
this.deshabilitarDescarga = true;
}
if (registroautorizacion.getPauCodigo().getPauLectura().toString().equals("S")) {
this.deshabilitarCopia = false;
} else {
this.deshabilitarCopia = true;
}
if (registroautorizacion.getPauCodigo().getPauVisualizacion().toString().equals("S")) {
this.deshabilitarVisualizar = false;
} else {
this.deshabilitarVisualizar = true;
}
contador = 0;
} catch (Exception e) {
}
}
private boolean filasel = false;
public boolean isFilasel() {
RegistroAutorizacion registrolocal = new RegistroAutorizacion();
try {
registrolocal = lregistroautorizacion.get(contador);
mensajeg = "";
} catch (Exception e) {
}
contador++;
return registroautorizacion.equals(registrolocal);
}
public void setFilasel(boolean filasel) {
this.filasel = filasel;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="DESPLIEGUE DEL PANEL POPUP">
private PanelPopup panelPopup1 = new PanelPopup();
public PanelPopup getPanelPopup1() {
return panelPopup1;
}
public void setPanelPopup1(PanelPopup pb) {
this.panelPopup1 = pb;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="DECLARACIONE DE BOTONES">
private boolean deshabilitarDescarga = true;
private boolean deshabilitarCancelar = true;
private boolean deshabilitarCopia = true;
private boolean deshabilitarTexto = true;
private boolean deshabilitarVisualizar = true;
public boolean isDeshabilitarVisualizar() {
return deshabilitarVisualizar;
}
public void setDeshabilitarVisualizar(boolean deshabilitarVisualizar) {
this.deshabilitarVisualizar = deshabilitarVisualizar;
}
public boolean isDeshabilitarDescarga() {
return deshabilitarDescarga;
}
public void setDeshabilitarDescarga(boolean deshabilitarDescarga) {
this.deshabilitarDescarga = deshabilitarDescarga;
}
public boolean isDeshabilitarTexto() {
return deshabilitarTexto;
}
public void setDeshabilitarTexto(boolean deshabilitarTexto) {
this.deshabilitarTexto = deshabilitarTexto;
}
public boolean isDeshabilitarCancelar() {
return deshabilitarCancelar;
}
public void setDeshabilitarCancelar(boolean deshabilitarCancelar) {
this.deshabilitarCancelar = deshabilitarCancelar;
}
public boolean isDeshabilitarCopia() {
return deshabilitarCopia;
}
public void setDeshabilitarCopia(boolean deshabilitarCopia) {
this.deshabilitarCopia = deshabilitarCopia;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="OPCIONES DEL PANEL POPUP">
public void buttonModal_processAction(ActionEvent ae) {
abrirPanel(!panelPopup1.isRendered());
}
public void abrirPanel(boolean evento) {
panelPopup1.setRendered(evento);
}
public void setVisualizar(ActionEvent ae) {
setMensaje("Visualizar el archivo");
this.setLaccion("v");
abrirPanel(!panelPopup1.isRendered());
}
public void setDescargar(ActionEvent ae) {
setMensaje("Descargar el archivo");
this.setLaccion("d");
abrirPanel(!panelPopup1.isRendered());
}
public void setCopiar(ActionEvent ae) {
setMensaje("Copiar el archivo");
this.setLaccion("c");
abrirPanel(!panelPopup1.isRendered());
}
public void setImprimir(ActionEvent ae) {
setMensaje("Imprimir el archivo");
this.setLaccion("i");
abrirPanel(!panelPopup1.isRendered());
}
public void buttonsiPanel_processAction(ActionEvent ae) throws IOException {
abrirPanel(!panelPopup1.isRendered());
if (laccion.equals("d")) {
this.buttondescargaArchivo_processAction(ae);
}
if (laccion.equals("c")) {
buttonEnviaMail_processAction(ae);
}
if (laccion.equals("v")) {
buttonVisualizar_processAction(ae);
}
if (laccion.equals("i")) {
buttonImprimir_processAction(ae);
}
}
//</editor-fold>
/** Creates a new instance of AccesoAutorizadoBean */
public AccesoAutorizadoBean() {
abrirPanel(!panelPopup1.isRendered());
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
try {
if (request.getParameter("cedula") != null && !request.getParameter("cedula").equalsIgnoreCase("")) {
cedula = this.obmfun.desencriptar(request.getParameter("cedula"));
} else {
cedula = null;
}
} catch (SQLException ex) {
Logger.getLogger(AccesoAutorizadoBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//<editor-fold defaultstate="collapsed" desc="BOTON DE DESCARGA DEL ARCHIVO">
public void buttondescargaArchivo_processAction(ActionEvent ae) throws IOException {
System.out.println("Entro a la descarga");
try {
String locpatharchivo = "c:\\Descarga\\";
File directorio2 = new File(locpatharchivo);
if (!directorio2.exists()) {
directorio2.mkdirs();
}
BusquedaDocumentoBean busdoc = new BusquedaDocumentoBean();
busdoc.descargaArchivo(registroautorizacion.getDocCodigo().getDocCodigo().toString(), locpatharchivo);
locpatharchivo = busdoc.getPath();
mensajeg = "El Documento ha sido Descargado en " + locpatharchivo;
this.deshabilitarCancelar = true;
this.deshabilitarDescarga = true;
//Guardo la pista en el contro de acceso para descarga
controlaccesoFacade.insertControl(cedula, "N", "S", "N", "N", registroautorizacion.getDocCodigo());
} catch (FileNotFoundException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BOTON CANCELAR">
public void buttonCancelar_processAction(ActionEvent ae) {
try {
registroautorizacion = new RegistroAutorizacion();
deshabilitarDescarga = true;
this.deshabilitarCopia = true;
this.deshabilitarCancelar = true;
} catch (Exception e) {
System.out.println("" + e.getLocalizedMessage());
}
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="ENVIAR MAIL">
public void descargaArchivo() {
String lpath = null;
try {
BusquedaDocumentoBean busdoc = new BusquedaDocumentoBean();
busdoc.descargaArchivo(registroautorizacion.getDocCodigo().getDocCodigo().toString(), lpath);
lpatharchivo = busdoc.getPath();
} catch (FileNotFoundException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void enviarMail() {
try {
String lcontraseña = "jorozco";
String mailRemitente = "[email protected]";
if (mailRemitente != null && mailRemitente.toString().length() > 0) {
String subject = "Copia de archivo"; //textFieldTitulo.getText().toString(); // the subject line
String message = "Se le informa que se le ha enviado la copia del documento" + this.registroautorizacion.getDocCodigo().getDocCodigoDoc(); // the body of the message
String mailhost = "190.95.203.5";//"mail.ejercito.mil.ec";
//Verifico que sea un mail
Pattern p = Pattern.compile("@");
Matcher m = p.matcher(mailRemitente);
if (!m.find()) {
this.mensajeg = "Por favor revisa la direccion e-mail del remitente";
System.out.println("La cadena no tiene arroba");
} else {
String user = mailRemitente.toString().substring(0, m.start()); // user ID
compenviomail.configMail(mailhost, user, lcontraseña);
compenviomail.setFrom(mailRemitente.toString());
compenviomail.setSubject(subject);
compenviomail.setTo(lmailenvio.toString());
if (registroautorizacion.getDocCodigo().getDocNombreDoc() != null && registroautorizacion.getDocCodigo().getDocNombreDoc().length() > 0) {
compenviomail.addAttach(lpatharchivo + registroautorizacion.getDocCodigo().getNombreDesencriptado());
}
compenviomail.addContent(message);
compenviomail.sendMultipart();
compenviomail.eliminaAttach();
this.mensajeg = " Mail enviado ";
System.out.println("[ Mail enviado ]");
File dir = new File(lpatharchivo);
borrarDirectorio(dir);
dir.delete();
contenviomail = true;
}
} else {
contenviomail = false;
this.mensajeg = "Ingrese la dirección e-mail del remitente";
}
} catch (Exception ex) {
contenviomail = false;
Logger.getLogger(RegistroCopiaBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BOTON ENVIAR MAIL">
public void buttonEnviaMail_processAction(ActionEvent ae) {
descargaArchivo();
enviarMail();
//Guardo la pista en el contro de acceso para copia
controlaccesoFacade.insertControl(cedula, "N", "N", "N", "S", registroautorizacion.getDocCodigo());
File dir = new File(lpatharchivo);
borrarDirectorio(dir);
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BORRAR EL DIRECTORIO TEMPORAL">
public void borrarDirectorio(File directorio) {
File[] ficheros = directorio.listFiles();
for (int i = 0; i < ficheros.length; i++) {
if (ficheros.isDirectory()) {
borrarDirectorio(ficheros);
}
ficheros.delete();
}
this.lpatharchivo = null;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="BOTON VISUALIZAR">
public void buttonVisualizar_processAction(ActionEvent ae) {
String cadenaParametros = "";
String url = "/SIADA-war/VerDocumento";
String metodo = "post";
String target = "_blank";
String sql = "SELECT DOC_DIGITAL FROM ADOC_DOCUMENTO WHERE DOC_CODIGO = ?";
cadenaParametros += " {'extension' : '" + registroautorizacion.getDocCodigo().getDocExtension() + "','codigo' : '" + registroautorizacion.getDocCodigo().getDocCodigo() + "' , 'sql' : '" + sql + "' }";
JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "crea_form('" + url + "','" + metodo + "','detalle', " + cadenaParametros + ");");
//Guardo la pista en el contro de acceso para visualizacion
controlaccesoFacade.insertControl(cedula, "S", "N", "N", "N", registroautorizacion.getDocCodigo());
}
//</editor-fold>
public void buttonImprimir_processAction(ActionEvent ae) {
impresion = Desktop.getDesktop();
File archivo = new File("C:/Descarga/AVANCE JULIO.doc");
if (archivo.exists()) {
try {
impresion.print(archivo); //abre el archivo
} catch (IOException ex) {
Logger.getLogger(AccesoAutorizadoBean.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Se ha impreso el archivo");
}
}
}
He estado investigando. Parece que cuando ejecutas un servidor de aplicaciones, se activa el modo "headless", que viene a ser un "no tengo escritorio, soy un servidor". Parece que el java. Awt. Desktop necesita que el headless sea false, por lo que no vas a poder usar el Desktop en un servidor web.
Alternativa: dependiendo del SO en el que corra el servidor de aplicaciones, podrías hacer un apaño usando el Runtime. GetRuntime().exec() y ejecutar algún programita que te permita imprimir un fichero sin que salga la ventana de configuración de la impresora.
También podrías tener una app en modo headless=false (una app de escritorio como la que has usado en las pruebas), que se dedique a imprimir los archivos que se encuentren en una carpeta determinada. De este modo, el servidor de aplicaciones tan solo tendría que copiar el fichero en la carpeta, y la otra app se encargaría de imprimirlo.
Un poco rudimentario todo, lo se, pero como decía mi madre, "la vida es una caja de ñapas, nunca saber las que vas a tener que hacer hoy". Suerte:
Carlos.
Alternativa: dependiendo del SO en el que corra el servidor de aplicaciones, podrías hacer un apaño usando el Runtime. GetRuntime().exec() y ejecutar algún programita que te permita imprimir un fichero sin que salga la ventana de configuración de la impresora.
También podrías tener una app en modo headless=false (una app de escritorio como la que has usado en las pruebas), que se dedique a imprimir los archivos que se encuentren en una carpeta determinada. De este modo, el servidor de aplicaciones tan solo tendría que copiar el fichero en la carpeta, y la otra app se encargaría de imprimirlo.
Un poco rudimentario todo, lo se, pero como decía mi madre, "la vida es una caja de ñapas, nunca saber las que vas a tener que hacer hoy". Suerte:
Carlos.
- Compartir respuesta
- Anónimo
ahora mismo