📄 headless.txt
字号:
1. Install Tomcat
2. Run startup.sh
3. Open http://server:8080/servlet/com.objectplanet.chart.ChartServlet
Error on first try:
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:59)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
at java.awt.Font.initializeFont(Font.java:264)
at java.awt.Font.(Font.java:298)
at com.objectplanet.chart.Chart.reset(Chart.java)
at com.objectplanet.chart.BarChart.reset(BarChart.java)
at com.objectplanet.chart.Chart.(Chart.java)
at com.objectplanet.chart.Chart.(Chart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChartApplet.createChart(BarChartApplet.java)
at com.objectplanet.chart.ChartApplet.(ChartApplet.java)
at com.objectplanet.chart.BarChartApplet.(BarChartApplet.java)
at com.objectplanet.chart.ChartServlet.init(ChartServlet.java)
at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317)
at org.apache.tomcat.core.Handler.init(Handler.java:215)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)
Error on second try:
java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
at java.awt.Font.initializeFont(Font.java:264)
at java.awt.Font.(Font.java:298)
at com.objectplanet.chart.Chart.reset(Chart.java)
at com.objectplanet.chart.BarChart.reset(BarChart.java)
at com.objectplanet.chart.Chart.(Chart.java)
at com.objectplanet.chart.Chart.(Chart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChart.(BarChart.java)
at com.objectplanet.chart.BarChartApplet.createChart(BarChartApplet.java)
at com.objectplanet.chart.ChartApplet.(ChartApplet.java)
at com.objectplanet.chart.BarChartApplet.(BarChartApplet.java)
at com.objectplanet.chart.ChartServlet.init(ChartServlet.java)
at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317)
at org.apache.tomcat.core.Handler.init(Handler.java:215)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:806)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)
Solution 1 - start X11
1. Boot the machine in X windows mode or start X manually
2. Set DISPLAY to localhost:0.0 from the console you start tomcat with
Does not work very well, on my solaris test machine, the chart takes
forever to be created
Solution 2 - use PJA
1. Download PJA from http://www.eteks.com/pja/en/
2. Install PJA
3. Modify your tomcat.sh file
3.1 Change
if [ "$JAVACMD" = "" ] ; then
# it may be defined in env - including flags!!
JAVACMD="$JAVA_HOME/bin/java"
fi
to (change the path to pja if you have another one)
if [ "$JAVACMD" = "" ] ; then
# it may be defined in env - including flags!!
JAVACMD="$JAVA_HOME/bin/java -Xbootclasspath/p:/export/home/usr/pja/lib/pja.jar
-Dawt.toolkit=com.eteks.awt.PJAToolkit
-Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment -Djava2d.font.usePlatformFont=false
-Djava.awt.fonts=/export/home/usr/java1.2/jre/lib/fonts -Duser.home=/export/home/usr/pja"
fi
3.2 change classpath
if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
# We are probably in a JDK1.2 environment
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
fi
to
if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
# We are probably in a JDK1.2 environment
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar:/export/home/usr/pja/lib/pjatools.jar:/export/home/usr/tomcat/lib
fi
4. Start tomcat by running startup.sh
Your chart should now be generated
Solution 3 - Use Xvfb
1. Download Xvfb from
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -