アーカイブ

‘java’ カテゴリーのアーカイブ

GAE/J で WARNING Can not serve hoge.html directly. You need to include it in <static-files> in your appengine-web.xml

2009 年 10 月 25 日 Comments off

Google App Engine for Java (GAE/J) で、静的ファイル ( html、css、js ) を扱おうとして、

WARNING: Can not serve /hoge/hoge.nocache.js directly. You need to include it in in your appengine-web.xml.

てな感じで怒られる。

appengine-web.xml の書き方が間違っているらしい。


<static-files>
	<include path="/**.html" />
	<include path="/**.css" />
	<include path="/**.js" />
</static-files>

こう書いてたけど、これではルート直下のんしか駄目らしい。

ルート以下の任意のサブディレクトリの下にも適用するには、


<static-files>
	<include path="**.html" />
	<include path="**.css" />
	<include path="**.js" />
</static-files>

こっちが正解らしい。

カテゴリー: eclipse, Google App Engine, java タグ:

GAE/J で HTML (静的ファイル) を

2009 年 10 月 24 日 Comments off

Google App Engine for Java (GAE/J) で、まずはHTMLファイルをデプロイだ!

つまづいた事 その1

GAE/J での開発は、eclipseのプラグインで始めてます。
まず eclipse に慣れてないもんで、素のHTMLファイルってどう扱うかでつまづいた。
JSPとかjavaとかは、workspaceのディレクトリに直接作って編集したりしているもんだから、そのノリでHTML作っても、Javaパースペクティブのパッケージ・エクスプローラに出現しない。
よく判らないけど、eclipse のパッケージ・エクスプローラ上で右クリック – [新規] – [ファイル] でもって、HTMLを作成したら、ちゃんとパッケージ・エクスプローラにも表示されました。

つまづいた事 その2

Google Codeを読んだ。
warフォルダ直下にhtdocsディレクトリを作成し、その中にHTMLファイルを作成した。
HTMLを静的ファイルとして明示的に扱う様に、web.xmlを編集した。

<static-files>
	<include path="/htdocs/**.html" />
</static-files>

良く読んでから気づいたけど、web.xml じゃなくって appengine-web.xml だった。
先入観でやったら駄目ですね。

カテゴリー: eclipse, Google App Engine, java タグ:

eclipse(Ganymede) で ArrayList は raw 型です。 総称型 ArrayList への参照は、パラメーター化する必要があります

2009 年 10 月 23 日 Comments off

JDK 1.4時代の古いJavaアプリケーションをeclipse(Ganymede)に持ってくると、

ArrayList は raw 型です。 総称型 ArrayList への参照は、パラメーター化する必要があります

的な警告が、それはそれはものすごく沢山でた。

JDK5以降は、ジェネリクス(総称型)でコンパイル時に型をチェック出来るので、キャスト地獄から開放されるわけだけど、
あまりに量が多くて対応してらんない。

仕方ないから、警告が出ない様にしました。

[ウィンドウ]→[設定]→[Java]→[コンパイラー]→[エラー/警告]→[総称型]→[raw型の使用]

[無視]に変更

カテゴリー: eclipse, java タグ:

eclipse(Ganymede)で、シリアライズ可能クラス は long 型の static final serialVersionUID フィールドを宣言していません

2009 年 10 月 22 日 Comments off

eclipse(Ganymede)で、

シリアライズ可能クラス Hoge は long 型の static final serialVersionUID フィールドを宣言していません

と怒られた。
クラス Hoge は implements Serializable なクラス。

こんな感じでユニークかつテキトーな値を定義すればよい。

	private static final long serialVersionUID = 1234551229936403487L;

eclipseでは、警告をダブルクリックしてソースを開いて、Ctrl+1を押下し、「生成シリアル・バージョンIDの追加」を選択すると、よきにはからってくれる。

eclipseって便利だなー。

カテゴリー: eclipse, java タグ:

java (5以降) の拡張forループ

2009 年 10 月 19 日 コメント 2 件

java5から、for文が拡張されている。
恥かしながら、最近まで Iterator 使いまくりだった。

List list = dao.findSomethingList();
for (Iterator i = list.iterator(); i.hasNext();) {
	Something some = (Something) i.next();
	some.doSomething();
}

なんて書いていたのんが、

List<Something> list = dao.findSomethingList();
for (Something some : list) {
	some.doSomething();
}

ちょっとスッキリするし、可読性が高くなるっす。

参考サイト
【連載 】JDK5を活用する第3回:拡張forループ

カテゴリー: java タグ: