- PR -

DefaultToolkitがとれない?

投稿者投稿内容
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2003-12-17 14:33
いつもお世話になってます。

お客さんの環境なのですが、作成したサーブレットをSuSE Linux+Tomcat+JDK1.4上で
動かそうとしているのですが、どうもDefaultToolkitがとれないようです。
X-Windowが起動していない(ImageMagickで同じようなことがあったような気がしたので)
のかと思い、xinitでXを起動してみたのですがやはりダメでした。
googleで探したのですが、それらしいものは見付かりませんでした。

お客さんの環境なので不明な点が多いのですが、何かわかるかたおられないでしょうか?
よろしくお願いします。

<エラー>
java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at java.awt.Toolkit$2.run(Toolkit.java:712)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:703)
at TestServlet.service(TestServlet.java:39)
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2003-12-17 15:07
xinitではなくstartxとしてKDEを起動しました。
その状態では以下のようなエラーに変わりました。

やはりX-Window関連の問題のようですが、わたしはXについてはよく知らないので、
やはり原因がわかりません。Xについて調べてはみますが、何かご存知の方はおられ
ませんか?この質問はLinux会議室に持っていった方がいいのかな?

<エラー>
java.lang.InternalError: Can't connect to X11 window server using 'biogrid1:0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:125)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at sun.awt.motif.MToolkit.(MToolkit.java:72)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at java.awt.Toolkit$2.run(Toolkit.java:712)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:703)
at TestServlet.service(TestServlet.java:39)
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2003-12-17 15:18
似たような内容で、コンソールベースのLinux+TomcatでJPEG画像を生成する場合は、
Xvfbという物を使うというような情報を見つけました。

これについて詳細に調べてみます。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-17 15:27
引用:

<エラー>
java.lang.InternalError: Can't connect to X11 window server


Xサーバにつなげないと言ってますね。Xは起動していますか?
また、'biogrid1:0.0'というDISPLAY環境変数がセットされているということは、
biogrid1というホストのXサーバにつなぎに行っていることになりますが、それは
予期している挙動でしょうか?

DefaultToolkitというのは何か分かりませんが、以前hp-uxでコンソールベースのJava
アプリで(AWTの)画像関連のAPIを使いたかった時は、PJA(Pure Java AWT)を使いました。
ググッたら解説がありますね。PJA Toolkit

要は、AWTというのはプラットフォームネイティブのグラフィックス表示システムを
ラップしているのでコンソールベースの時は使えないけど、PJAならネイティブに
接続しないのでコンソールベースでも使えるよ、ということです。詳しくは解説を
読んでみてください。


[ メッセージ編集済み 編集者: おばけ 編集日時 2003-12-17 15:28 ]
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-12-17 15:38
unibon です。こんにちわ。

引用:

おばけさんの書き込み (2003-12-17 15:27) より:
DefaultToolkitというのは何か分かりませんが、以前hp-uxでコンソールベースのJava
アプリで(AWTの)画像関連のAPIを使いたかった時は、PJA(Pure Java AWT)を使いました。
ググッたら解説がありますね。PJA Toolkit


#こんな便利なものがあるとは知りませんでした。
ちなみに、今回のmaruさんの状況では、
おそらくその URL 中に書かれてある「ヘッドレスサポート」(-Djava.awt.headless=true)を使うだけで、
解決できるのではないかと思います。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-17 15:44
引用:

#こんな便利なものがあるとは知りませんでした。


えと、UNIXサーバだと普通ってXは入って無いじゃないですか。
でも、AWTの画像変換のAPIは使いたかったりする、と。
そんな時に便利なようです

# 普通のAWTで書いてサーバにデプロイして、、、あれあれ、動かない!!
# って焦ると最悪ですよね、、、(T-T)。一回ありました(ショボ)
さくらば
大ベテラン
会議室デビュー日: 2002/11/12
投稿数: 145
投稿日時: 2003-12-17 16:00
こんにちは、さくらばです。

引用:

おばけさんの書き込み (2003-12-17 15:44) より:
えと、UNIXサーバだと普通ってXは入って無いじゃないですか。
でも、AWTの画像変換のAPIは使いたかったりする、と。
そんな時に便利なようです



ヘッドレスサポート使えば PJA も Xvfb もいらないですよ。
普通に AWT の機能を使えます。

# もちろんフレームを描画とはできないですが。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-17 16:09
引用:

ヘッドレスサポート使えば PJA も Xvfb もいらないですよ。


ほう!そんなことができるんですか。知らなかった
ヘッドレス、つまり表示する画面が無い、ということなんですかね。。。

スキルアップ/キャリアアップ(JOB@IT)