Problemas visualização de Reports PDF em Java web com Linux!

:cry:
Olá pessoal o erro eh basicamente isso:

===========
javax.servlet.ServletException: java.lang.InternalError: Can’t connect to X11 window server using ‘:0.0’ as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at java.awt.Font.initializeFont(Font.java:308)
at java.awt.Font.(Font.java:344)
at com.genexus.reports.PDFReport.GxAttris(Unknown Source)
at obaca12_impl.hke0(obaca12_impl.java:94)
at obaca12_impl.webExecute(obaca12_impl.java:49)
at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)

Nosso linux server está rodando: Jakarta Tomcat 4.1, j2sdk1.4.2_05

Já li nos incidentes registrados, e outros foruns Java a seguinte solução para este problema:

Em =>> http://www.artech.com.uy/gxdlsp/pub/iehelp.htm?genexus/java/docum/releasenotes/7.5/reportespdfjava.htm …encontrei a seguinte solução:

Ejecución de reportes en JDK 1.4:
En la versión 1.4 del JDK de Sun está planeado que se pueda utilizar AWT en cualquier plataforma sin necesidad de soporte gráfico, por lo que dejará de ser necesaria la utilización de esta biblioteca. En este caso solo se tiene que levantar la virtual machine con lo siguiente: -Djava.awt.headless=true

Em =>> http://www.gxtechnical.com/main/hviewsac.aspx?2,3,14,13319 …solução parecida…

Reportes PDF Java en plataformas no Windows
Deben hacerse algunos cambios en la VM sobre la que se llama el servidor de servlets.

Por ejemplo en linux y tomcat , hay que hacer lo siguiente:

Opcion 1: Con JDK 1.4

  • En el archivo incatalina.sh, agregar a las opciones de ejecucion de la vm, lo siguiente: -Djava.awt.headless=true

Porém nenhuma dessas tentativas solucionaram o problema, faltou especificar mais detalhes na configuração “-Djava.awt.headless=true” no arquivo catalina.sh, fizemos outras tentativas como colocar variaveis no ambiente…:

You can pass it adding -Djava.awt.headless=true to the command that launches your application server (e.g. Tomcat)

this is my script to launch tomcat as a daemon:

JAVA_HOME=/usr/lib/java2
CATALINA_HOME=/opt/jakarta-tomcat
export CATALINA_HOME
export JAVA_HOME
cd $CATALINA_HOME
./bin/jsvc -Djava.awt.headless=true -Djava.endorsed.dirs=./common/endorsed -cp ./bin/bootstrap.jar -outfile ./logs/catalina.out -errfile ./logs/catalina.err org.apache.catalina.startup.Bootstrap

if you use the standard startup.sh and catalina.sh you can add them in the JAVA_OPTS enviroment variable. I think under Windows and/or another application server you can work in a similar way.

E muita outras tentativas como essa a mais recente:
No catalina.sh :
//============

OS specific support. $var must be set to either true or false.

JAVA_OPTS= $JAVA_OPTS -Djava.awt.headless=true
cygwin=false
os400=false
case “uname” in
CYGWIN*) cygwin=true;;
OS400*) os400=true;;
esac
//============

DEPOIS que eu modifiquei o catalina.sh, parei o catalina.sh :
/var/tomcat/lib/catalina.sh stop
deu o seguinte problema:

[root@hostname root]# /var/tomcat/bin/catalina.sh stop
/var/tomcat/bin/catalina.sh: line 44: -Djava.awt.headless=true: command not found
Using CATALINA_BASE: /var/tomcat
Using CATALINA_HOME: /var/tomcat
Using CATALINA_TMPDIR: /var/tomcat/temp
Using JAVA_HOME: /usr/java/j2sdk1.4.2_05

depois dei um service tomcat start =>> OK!
mas o mesmo problema persistiu! Acredito que seja outra solução!

Está em anexo nosso arquivo catalina.sh, talvez a solução para relatórios pdf Java Web em tomcat ambiente linux seja outra… é importante
lembrar que todos os relatórios PDF em Java Web rodaram no tomcat em ambiente Windows 2000 professional, Windows 98SE.

http://www.multiacervo.com.br/cliente/catalina.sh

Abraços
Rafael Felipe.

É bom ler a mensagem de erro.

/var/tomcat/bin/catalina.sh: line 44: -Djava.awt.headless=true: command not found 

Na linha 44 está o seguinte comando:

JAVA_OPTS= $JAVA_OPTS -Djava.awt.headless=true

O que está ocorrendo aqui? É legal ler a documentação do Bourne Shell (leia a do bash). Não li a documentação - estou respondendo sem ler, mas provavelmente ele está entendendo como um comando. Para evitar isso (provavelmente a variável JAVA_OPTS já tem algum valor que pode dar problemas),

mude a linha para:

JAVA_OPTS='-Djava.awt.headless=true' $JAVA_OPTS

e veja o que ocorre.

ou melhor,

JAVA_OPTS="-Djava.awt.headless=true $JAVA_OPTS"

Sutilezas do Bourne Shell…

Era as aspas duplas que faltavam mesmo …
Esquecemos de avisar aqui no GUJ que já tinhamos conseguido descobrir hehehe
vlw ai pela ajuda…
onde encontro esta documentacao do bourne shell ou do bash ???
vlw

man bash

:wink:

[]s

Vlw ai…