No X11 DISPLAY variable was set, but this program performed an operation which requires it

2 respostas
Ivelton_Soares

Pessoal, eu já não sei o que fazer. Já pesquisei em tudo quanto é lugar e não encontro uma solução.
Eu fiz uma aplicação para envio de arquivos txt.
O usuário deve clicar em um botão e o sistema deve abrir uma caixa para o usuário selecionar o arquivo txt. Para isto eu estou utilizando o JFileChooser.
Acontece que em minha máquina ela funciona perfeitamente, porém quando eu subo a aplicação para o servidor aparece o erro abaixo no log do tomcar 6.

Ago 13, 2018 6:11:46 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute

Advertência: #{variaveis_ugac.selecionarArquivo()}: java.awt.HeadlessException:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

javax.faces.FacesException: #{variaveis_ugac.selecionarArquivo()}: java.awt.HeadlessException:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at br.com.bb.sso.api.filter.FiltroSeguranca.doFilter(FiltroSeguranca.java:110)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:227)

at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:722)

Caused by: javax.faces.el.EvaluationException: java.awt.HeadlessException:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

 28 more

Caused by: java.awt.HeadlessException:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)

at java.awt.Window.(Window.java:535)

at java.awt.Frame.(Frame.java:420)

at java.awt.Frame.(Frame.java:385)

at javax.swing.SwingUtilities$SharedOwnerFrame.(SwingUtilities.java:1756)

at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1831)

at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1697)

at javax.swing.JOptionPane.getWindowForComponent(JOptionPane.java:1638)

at javax.swing.JFileChooser.createDialog(JFileChooser.java:785)

at javax.swing.JFileChooser.showDialog(JFileChooser.java:732)

at javax.swing.JFileChooser.showOpenDialog(JFileChooser.java:639)

at br.com.bb.ci.ugac.util.Upload.selecionarArquivoTexto(Upload.java:104)

at br.com.bb.ci.ugac.controle.VariaveisMB.selecionarArquivo(VariaveisMB.java:110)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:737)

at javax.el.BeanELResolver.invoke(BeanELResolver.java:467)

at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:246)

at com.sun.el.parser.AstValue.invoke(AstValue.java:228)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)

 29 more
Ago 13, 2018 6:11:46 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError

Grave: javax.faces.el.EvaluationException: java.awt.HeadlessException:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at br.com.bb.sso.api.filter.FiltroSeguranca.doFilter(FiltroSeguranca.java:110)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:227)

at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:722)

Caused by: java.awt.HeadlessException:

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)

at java.awt.Window.(Window.java:535)

at java.awt.Frame.(Frame.java:420)

at java.awt.Frame.(Frame.java:385)

at javax.swing.SwingUtilities$SharedOwnerFrame.(SwingUtilities.java:1756)

at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1831)

at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1697)

at javax.swing.JOptionPane.getWindowForComponent(JOptionPane.java:1638)

at javax.swing.JFileChooser.createDialog(JFileChooser.java:785)

at javax.swing.JFileChooser.showDialog(JFileChooser.java:732)

at javax.swing.JFileChooser.showOpenDialog(JFileChooser.java:639)

at br.com.bb.ci.ugac.util.Upload.selecionarArquivoTexto(Upload.java:104)

at br.com.bb.ci.ugac.controle.VariaveisMB.selecionarArquivo(VariaveisMB.java:110)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:737)

at javax.el.BeanELResolver.invoke(BeanELResolver.java:467)

at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:246)

at com.sun.el.parser.AstValue.invoke(AstValue.java:228)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)

 29 more

Alguém poderia me ajudar?

Classe que seleciona o arquivo:

public String selecionarArquivoTexto() throws  HandlerException{
     String nome = null;

        JFileChooser abrir = new JFileChooser();

	abrir.setFileFilter(new FileFilter() {
		@Override
		public String getDescription() {
			return "Diretórios e .txt"; // Exibe essa mensagem
		}
		@Override
		public boolean accept(File arq) {
			return (arq.getName().endsWith(".txt") || arq.isDirectory());
			//  mostra arquivos terminados em .txt ou diretórios
		}
	});

	int retorno = abrir.showOpenDialog(null);
	if (retorno == JFileChooser.APPROVE_OPTION) {
		nome = abrir.getSelectedFile().getAbsolutePath();
	}
	return nome.replace("\\", "/");
}

2 Respostas

TerraSkilll

Você está tentando rodar uma aplicação que usa Swing (JFileChooser) dentro de um servidor web (Tomcat)? Não acho que isso funcione, então explique melhor o que você quer fazer.

  • se isso precisa rodar como uma aplicação Swing (desktop, basicamente), então o usuário precisa ter o jar dessa aplicação e o jre instalado (o download do jar pode vir de um servidor web qualquer, com Tomcat ou não);
  • se você quer fazer isso numa página web, não pode usar Swing. Precisa de uma aplicação web (jsp, por exemplo), e um formulário para o usuário subir um arquivo (input type file no html);

Abraço.

Ivelton_Soares

Obrigado.

Não resolveu o meu problema, mas eu entendi o erro.

Vou ter que reprogramar tudo.

Criado 13 de agosto de 2018
Ultima resposta 14 de ago. de 2018
Respostas 2
Participantes 2