- - PR -
ヘッドレスモード
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-03-19 19:16
ヘッドレスモードについて調査しているですが・・・
フレームを生成するときにエラーが出て困っております。 ヘビーGUIは落ちることはわかったのですが・・・ その代替はどのようにしたら良いでしょうか? ご教授よろしくお願い致します。 動作環境 Vine Linux 2.1.5 j2sdk1.4.1_01 tomcat-4.0.6 export JAVA_HOME=/usr/local/j2sdk1.4.1_01 export PATH=$PATH:/usr/local/j2sdk1.4.1_01/bin export CLASSPATH=$CLASSPATH:/usr/local/j2sdk1.4.1_01/lib/tools.jar:. export CLASSPATH=$CLASSPATH:/usr/local/tomcat/common/lib/servlet.jar export CATALINA_HOME=/usr/local/tomcat export CATALINA_OPTS="-Djava.awt.headless=true" export PATH=$PATH:/usr/local/tomcat/bin ソース import java.awt.*; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ExportServlet extends HttpServlet implements SingleThreadModel { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doPost(request, response); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { System.out.println("start"); Frame frame = new Frame(); System.out.println("end"); } catch(Exception e) { e.printStackTrace(); } } } エラー内容 java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:121) at java.awt.Window.<init>(Window.java:266) at java.awt.Frame.<init>(Frame.java:398) at java.awt.Frame.<init>(Frame.java:363) at ExportServlet.doPost(ExportServlet.java:18) at ExportServlet.doGet(ExportServlet.java:11) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:465) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:536) _________________ |
|
投稿日時: 2004-03-19 19:23
軽量コンポーネント、javax.swing.J*** を使えばよいかと思います。たぶん。
|
|
投稿日時: 2004-03-19 19:26
こんにちは。
逆質問ですが、サーブレットの中でawtのFrameを生成して何をなさろうとしているので しょうか? |
|
投稿日時: 2004-03-22 09:21
お世話になっております。
涼子です。 お返事が遅くなって申し訳ございません。 インギ様 JFrameで生成してみたところ・・・ HeadlessException 発生してしまいました。。。 書き方間違ってるですかね?(泣 すいません・・・ Java初心者なもので・・・ import javax.swing.*; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ExportServlet extends HttpServlet implements SingleThreadModel { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doPost(request, response); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { System.out.println("start"); JFrame frame = new JFrame(); System.out.println("end"); } catch(Exception e) { e.printStackTrace(); } } } エラー内容 start java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:121) at java.awt.Window.<init>(Window.java:266) at java.awt.Frame.<init>(Frame.java:398) at java.awt.Frame.<init>(Frame.java:363) at javax.swing.JFrame.<init>(JFrame.java:154) at ExportServlet.doPost(ExportServlet.java:18) at ExportServlet.doGet(ExportServlet.java:11) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:465) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:536) _________________ |
|
投稿日時: 2004-03-22 09:37
maru 様
おっしゃる通りですね。 何をしたいかよって・・・ 変わってきますよね。 今、EspressChart4.2を使って画像処理の サーブレットを作成しております。 Windows環境で動作確認したのですが、 Unix環境で動作しないので調査した結果、 上記の経緯がわかりました。 EspressChart4.2の中にChartAPIというAPIがありまして そのAPIを使って画像処理します。 ヘッドレス、pjaと調査してきましたが・・・ X-Server立上げないとダメなんですかね? API------------------------------------------ QbChart public QbChart(java.awt.Frame frame, int dimension, int chartType, IResultSet data, IColumnMap cmap)Deprecated. Please use the constructor having the applet parameter. Use "(Applet) null" as the first argument. Create a new chart, given the chart type and dimension. Input data is passed directly as an argument. Use this constructor if the chart is used in an application, If the chart server is used, the server locator file (server.cfg) is assumed to be in the current directory of the application. Parameters: frame - A Frame dimension - use QbChart.VIEW2D or QbChart.VIEW3D to specify 2D or 3D chart data - source data to plot chart, see IResultSet for details. cmap - column information used to specify the column mappings used to plot data, see interface IColumnMap for details サーブレット------------------------------- import java.io.*; import java.util.*; import quadbase.ChartAPI.*; import quadbase.util.*; import javax.swing.*; import javax.servlet.*; import javax.servlet.http.*; public class ExportServlet extends HttpServlet implements SingleThreadModel { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doPost(request, response); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // first, set the "content type" header of the response res.setContentType("text/html"); // Get the response's PrintWriter to return text to the client. PrintWriter toClient = res.getWriter(); String GIFName = "temp"; try { QbChart.setChartServerUsed(false); ColInfo colInfo=new ColInfo(); colInfo.category=0; colInfo.value=3; QbChart chart = new QbChart(new JFrame(), QbChart.VIEW2D, QbChart.COL, "/Gazou/sample.dat", colInfo); // Adding Hyperlink. For more information, please see EspressChart/help/apidocs/quadbase/util/IHyperLinkSet.html // IHyperLinkSet hyperLinks=chart.gethHyperLinks(); // Using constructor Hyperlink (series, category, sumby, link, target) // hyperLinks.add(new HyperLink("", "", "", "http://www.quadbase.com", "_self")); String errorMessage = chart.getErrorMessage(); if (errorMessage != null) { toClient.println("Error" + errorMessage); System.out.println("Error" + errorMessage); } // Export the chart // Chart.export(format, filename, width, height) chart.export(QbChart.GIF, "/Gazou/" + GIFName, 500, 400); // Respond to client with a thank you toClient.println("<html>"); toClient.println("<title>Thank you!</title>"); toClient.println("<H1>Example of Chart Image</H1>"); // Please change the URL of the GIF file String path = "file:///Gazou/" + GIFName + ".gif"; toClient.println("<H2>Export chart to " + path + "</H2>"); toClient.println("<IMG SRC=\"" + path + "\">"); toClient.println("</html>"); } catch(Exception e) { e.printStackTrace(); toClient.println("Cannot export file"); toClient.println(e.toString()); } // Close the writer; the response is done. toClient.close(); } } _________________ |
1
