Java Studio Creator Fun (Creator's Studio) - FAQ


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

FAQ


画面開発(Java Studio Creator)

Creatorで開発した部分のエラーはどこに出力されますか?

配備サーバのログに出力されます。詳細は、「配備サーバーのログファイルの場所は?」を参照してください。

ManagedBeanでSystem.out.println()した文字列はどこに出力されますか?

配備サーバのログに出力されます。詳細は、「配備サーバーのログファイルの場所は?」を参照してください。

XXコンポーネントの使用方法が分からない。

分からないコンポーネントを配置し、選択状態にすると、ダイナミックヘルプビューにヘルプが表示されます。有用な情報が取得できますのでぜひ活用してください。

Creatorがメモリリークしているみたいなのですが。

現状のCreator(2004Q2 Update7)では、そのような傾向があります。メニューバーを右クリックして表示する「メモリー」をクリックすることで、強制的にガベージコレクトを実行できますので、定期的にガベージコレクトしてください。
→Update8でかなり改善された気がします(体感的に)


開発をすすめていくとマシンの負荷が大きくて開発効率が悪い。

Java Studio Creatorでの画面開発は、プロジェクトに含まれる画面数が増える事で、開発マシンのリソース(主にメモリ)が必要となります。開発マシンのメモリ次第では開発に十分でない場合があります。

回避方法としては、配備サーバーを別マシンで動作させることで開発マシンのリソースをあけることができます。

手順は下記です。
① 配備サーバーを別マシンに導入し「リモート配備サーバ」に登録する。
② 画面の実行時は、「構築」「リモートサーバに配備」を行うことで、実行可能です。

また、配備サーバーに配備されているWebアプリケーションで不要なもの(デモ、サンプル)を削除することで、配備サーバーの起動が格段に早くなります。
詳細は「配備サーバーの起動を高速化することができますか?」を参照してください。


ドロップダウンリストのValueおよびTextを設定する。(チェックボックスリストやラジオボタンリストも同様)


ドロップダウンリストにValueおよびTextを設定したい場合は、ManagedBeanのコンストラクタ等で以下の処理を実装します。

// ドロップダウンの項目を生成する
ArrayList list = new ArrayList();
list.add( new SelectItem("0", "--選択してください。--") );
list.add( new SelectItem("1", "項目1") );
list.add( new SelectItem("2", "項目2") );
list.add( new SelectItem("3", "項目3") );

// ドロップダウンリストにバインドする
dropdown1SelectItems.setValue(list);


ドロップダウンリストの選択状態を指定する。(初期設定など)


選択項目を指定したい場合は、ManagedBeanのコンストラクタで以下の処理を実装します。

dropdown1.setSubmittedValue("XXX");
または、
dropdown1.setValue("XXX");

※チェックボックスリストやラジオボタンリストも同様。

チェックボックスリストを複数選択する場合は、以下の処理を実装する。

checkboxList1.setSelectedValues(new String[]{"1","2"});

ページフラグメント内で文字化けする。

現状のページフラグメント(.jspf)では、日本語を含むマルチバイトの文字をコンポーネントのvalueで設定すると文字化けが発生します。
回避策はありませんが、valueをManagedBeanのコンストラクタで設定するか、プロパティバインドを利用することで、ページフラグメント内に日本語を表示することができます。

ビジュアルデザイン時は綺麗にそろっているコンポーネントが、ブラウザ表示を行うとずれてしまう。

通常コンポーネントの配置は、スタイルシートの絶対位置座標で扱われるため、ブラウザで表示した際は各コンポーネントの左上のポイントが揃うように配置されてしまいます。
回避策としては、標準コンポーネントのグリッドパネル内に各コンポーネントを配備することで各コンポーネントの整列が可能となります。並び数の設定はcolumnsプロパティです。

スタイルシート(CSS)を利用する。

プロジェクト内の「リソース」にstylesheet.cssがあり、これがデフォルトで利用されます。編集することで独自のスタイルクラスを定義することができます。
個々のコンポーネントでスタイルクラスを利用する場合には、プロパティエディタの"StyleClass"より指定します。

ボタンコンポーネント内の文字列を縦書きにしたい。

スタイルシートの「writing-mode」により指定可能です(IE5.5以降のみ)

出力テキスト内の上下表示位置を制御したい。

スタイルシートの「text-align」により指定可能です。「vertical-align」はHTMLの<span>内となるため無効になってしまいます。

XXというコンポーネントはありますか?

Java Studio Creatorに付属する標準コンポーネントを確認してください。その中に求めるコンポーネントが無く、どうしても開発が必要な場合は、コンホーネンとの仕様にあわせて独自開発することが可能です。
参考URL: http://developers.sun.com/prodtech/javatools/jscreator/reference/themes/buildingjsf/index.html


JPG画像をページ上に貼り付けたが、画像が表示されない。

JSC上の画像ファイルの取扱には、以下の制約があります。
  • ファイル名を半角文字列とする(全角の場合実行時に表示されない問題がある)
  • ビジュアルデザイン上での.bmpファイル使用不可(実行時には表示される)

既存のJSP/HTMLファイルをプロジェクトに追加できますか?

既存のJSP/HTMLページをインポートするには、以下の手順が必要です。
  • ファイルのインポート(JSCの「既存項目を追加」を利用)
また、JSPのインポート時は、下記の編集が必要です。
  • タグの編集(ビジュアルエディタのエラーを参考にし数々の変更を実施する)
例)<INPUT type="text" name="text1"> → <input type="text"name="text1"/>
  • DOCTYPEを追加する(上記編集でXML形式となるため)
  • Gkitなどのカスタムタグは個別に定義が必要となります。

タグの編集は慣れればある程度機械的に処理可能ですが、それなりの時間は必要です。
できればUIはJSC自体で行っていただくのがベストです。

バリデータやコンバーター、必須チェックが設定された画面にて、ボタンで画面遷移をする際にチェックをしたくない。(「戻る」「メニュー」など)

プロパティ"immediate"をtrueにしてください。

フレーム(<FRAMESET>)を利用した画面開発を行いたい。

Creatorでの開発は、フレームの利用は推奨できません。2ペイン、3ペイン構成を実現したい場合には、ページフラグメントを利用してください。特に、メニューを表示するフレームとして固定的に利用したい場合などに有効です。

DateTimeコンバーターで日付を変換表示すると1日ずれる?

timeZoneプロパティに"Japan"を指定しないと、表示した時刻次第で1日ずれる事があります。(GMT基準で日付を判断するから)

メッセージリストにメッセージを出力する方法を教えてください。

ManagedBeanにて、info(String s)/warn(String s)/error(String s)/fatal(String s)のメソッドにて出力できます。出力文字のスタイルは、stylesheet.cssで指定されていて、編集も可能です。

メッセージリストにメッセージが重なって出力されてしまいます。

個々のコンポーネントのメッセージは、インラインメッセージを利用してください。メッセージリストの"globalonly"プロパティをtrueに設定することで、個々のコンポーネントのメッセージが表示されなくなります。それでも重なる場合は、メッセージリストの背景色をブラウザの背景色(通常は白)にすることで、最新のメッセージのみ表示されるようになります。

ボタンなどによるページナビゲーションで画面遷移をする場合のターゲットを指定したい。(新規ウィンドウに表示したいなど)

「アプリケーション構造」ビューから、Form要素を選択し、プロパティエディタより"target"プロパティを設定してください。新規ウィンドウ表示であれば、"_blank"です。

ドロップダウンリストやラジオボタンリストなどで「変更時に自動送信」を設定しても正しくイベントが発生しない。(ブラウザにIEを使用する場合)

プロパティエディタで、onChangeに設定されている"this.form1.submit()"を解除して、onClickイベントに同一の内容を定義してください。これは、IEでonChange()イベントが正しく発生しないためです。

プロジェクトが大きくなるとCreatorが"OutOfMemory"になって異常終了してしまう。

C:\Sun\Creator\bin\ide.cfgを変更することで、Creatorの利用メモリを増加させることができます。
修正前(デフォルト)
-J-Xms24m -J-Xmx256m
    ↓
修正例
-J-Xms24m -J-Xmx512m   ←Maxメモリを512MBにする場合

異なるプロジェクトから画面(JSP)をインポートしたい

異なるプロジェクトで開発した画面をプロジェクトにマージするには、下記の方法で行います。マージする画面は、UIレベルで処理を持たないものを想定しますが、データソース参照も自動的に反映されます。

1.読込みたいプロジェクト(ターゲット)を開く
2.「ファイル」「既存項目を追加」「その他」より、JSPページをプロジェクトに追加
3.同様のメニューより、Javaソースをプロジェクトに追加する。また、イメージファイルやCSSなどJSPから参照しているリソースがあれば同様に読込む
4.Javaソースのパッケージ名が異なる場合は、「プロジェクトナビゲータ」「Javaソース」で、JavaソースをマウスのD&Dターゲットでプロジェクトのパッケージへ移動することで、パッケージ名が変更される
5.以上でページデザイナで画面が確認できるはず



配備サーバー(Sun JavaSystem Application Server)


配備して実行すると、PageNotFound(404)になる。

配備を繰り返すことで発生する配備サーバのバグのようです。ログファイルに"Out of Memory"が記録されます。この場合は、配備サーバの再起動を行ってください。

配備サーバーのログファイルの場所は?

C:\Sun\Creator\SunAppServer8\domains\creator\logsのserver.logがログファイルです。

配備サーバーの管理画面にはどうやって接続できますか。

http://localhost:14848/ に接続します。
デフォルトのユーザ名は"admin"で、パスワードは"adminadmin"です。

Application Server 8.0 PEが大量のエラーログを出力し起動できない。


次の回避策を実施してください。

1.配備サーバを停止します。
停止後に、配備サーバーのプロセスが残っていないことを確認してください。

2.Creator_install_dir/SunAppServer8/domains/creator/logs/*.log ファイルを削除します。

3.Creator_install_dir/SunAppServer8/domains/creator/config/domain.xml ファイルを編集します。
    • <log-service> 要素を見つけます。
    • log-rotation-limit-in-bytes 属性を 100000000000 (100 G バイト) に変更します。
    • <log-service> 要素内に <module-log-levels> 要素を指定します。すべての属性の値を「INFO」から「OFF」に変更します。「OFF」の代わりに、「WARNING」または「SEVERE」に変更してレベルだけを低くすることもできます。

4.配備サーバーを再起動します。

※この問題は、近い将来リリースされる Java Studio Creator2 に付属の Application Server 8.1 PE で修正されています。


プロジェクトの配備中にエラーとなり、その後配備サーバが起動できなくなる。

次の回避策を実施してください。

1.「プロジェクトの生成物を削除」を利用して配備されているプロジェクトを削除します。

2.配備サーバが起動中の場合は、サーバナビゲータより配備サーバを停止します。

3.Widnowsタスクマネージャを利用して不明なjavaプロセスが起動していないことを確認します。(このとき実行中のjavaプロセスがあれば停止します。)

4.プロジェクトの再配備を実行します。

配備サーバーの起動を高速化することができますか?

不要なWebアプリケーションの配備を削除することで、起動が高速になります。
Webアプリケーションの削除は、下記の方法で可能です。
1. 配備サーバーの管理ページ(http://localhost:14848/)にログイン
2. Applications->WebApplicationsを開く
3. 削除するWebアプリケーションを選択(チェック)しUnDeploy
※ あらかじめサンプルが配備されていますが、削除しても問題ありません