SSブログ

NetBeans の main/contrib をビルドするには? [IC]

NetBeans で Jetty プラグインを利用するには? の続き。

NetBeans に Servlet コンテナ Jetty のプラグインを追加するために NetBeans の main/contrib をビルドするにはどうするか。

Nabble - NetBeans - Japanese Users - NB6.5PHPでの全角スペースやタブの表示 によると、本記事とは別件の文脈であるが、

ビルドするには(私の理解だと) NetBeans のソース全体をクローンする
必要があります。これが大きいですね…

% hg clone http://hg.netbeans.org/main
% cd main
% hg clone http://hg.netbeans.org/main/contrib

と記載がある。ここで hg は Mercurial のコマンドの事である。Mercurial は水銀を意味するから、コマンドを水銀んお原子記号の hg とかけているわけだ。ということで、Mercurial が必要になった訳だが、NetBeans には Mercurial プラグインがある。

これを使ってみたところ、NetBeansにもありました。 - ひたすらプログラミング日記 で紹介されているように、NetBeans の【メニューバー】-【ウィンドウ】-【その他】-【Maven Repository Browser】が見つかった。その様子が次の図。

image3.gif

しかし、ここを見てみても main/contrib が見つからない。jetty で検索してみても j2ee.jetty プラグインにうまくヒットしない。このリポジトリは Maven のリポジトリであって、Mercurial のリポジトリではないのだろうか。

しょうがないから、Mercurial をインストールする羽目になる。上記の状態であれば NetBeans には既に Mercurial が統合されているはずだから、本来は必要ないはずだが、めんどうなので。

NetBeans の main/contrib をビルドするには? その 2 に続く。


タグ:Java

NetBeans で Jetty プラグインを利用するには? [IC]

Servlet/JSP でのエラーページの表示 その3 で Servlet コンテナによりエラーページの取り扱いが異なるようだと書いた。では、Jetty という Servlet コンテナ(+Web Server) ではどうなるだろうか。

NetBeans で各種 Servlet コンテナを扱うには 【メニューバー】-【ツール】-【サーバー】から次のダイアログを開いて設定する。

image.gif

このダイアログで【サーバーを追加】を選択すると次のダイアログが表示される。

image2.gif

しかし、このダイアログには Jetty の項目がない。今回の記事の意図は、ここに Jetty を追加するにはどうしたらよいか?である。

によると、novakim 氏がプラグインを作ったようだ。掲示板に nbm を添付している。私の環境でそのリンクを開くとなぜか binary でダウンロードされない。Iria などのダウンロードツールを使ってダウンロードしてもファイルが壊れてしまう。頑張れば何とかなるかもしれないが、めんどくさそうなので、ソースコードからビルドすることにした。

しかし、それはそれでめんどくさい。 だからこうして blog に記事を書いているわけだ。

novakim 氏のプラグインは main/contrib/j2ee.jetty にある。現在、NetBeans のソースコードは Mercurial で管理している。ということで、ここからは、NetBeans の main/contrib をビルドしよう!に内容が変わってしまうのである。

...これ、なんて RPG?

NetBeans の main/contrib をビルドするには? に続く。


タグ:Java

Servlet/JSP でのエラーページの表示 その3 [IC]

Servlet/JSP でのエラーページの表示 その2 と同じ Servlet を GlassFish Ver.2 で表示したところ次のように表示された。image.gif

同じ Servlet が Tomcat Ver.5.5 だと空白ページが表示される。

どうやら、GlassFish Ver.2 と Tomcat Ver.5.5 ではエラーページの扱いが異なるようだ。私が実際に使うのは GlassFish Ver.3 Prelude か Jetty になりそうなので、そちらでも調べておかないと...。

それにしても、エラーページ一つとっても Servlet コンテナによって既定の仕様が異なるんだね。

NetBeans で Jetty プラグインを利用するには? に続く。


タグ:Java

Servlet/JSP でのエラーページの表示 その2 [IC]

Servlet/JSP でのエラーページの表示 という記事の続き。

基本に戻り単純な Servlet を作る。

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;

public class NewServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        throw new ServletException("ServletException");
    }
}

この Servlet は単純に例外を発生させるだけである。例外が起きれば Internal Server Error になるかなと思ったが、localhost:8080/WebApplication3/NewServlet にアクセスしても真っ白いページが表示されるだけ。

確かに HTTP レスポンスは返していないので、それはそれで正しいが、例外が発生した場合は、既定では Tomcat がエラーページを作成するのではなかったか?

仮にそのような仕様は無いとすれば、 カスタムエラーページの仕様も無さそうなものだが...

まだ調べる必要があるらしい。

Servlet/JSP でのエラーページの表示 その3 に続く。


タグ:Java

Servlet/JSP でのエラーページの表示 [IC]

Java Servlet や JSP(Java Server Pages) で例外が発生したとき表示するエラーページを変更したい。

Web で検索したり Sun の試験の書籍を調べると、web.xml を次のように編集すれば良いとある。例えば、プログラム中の内部エラーが発生したときは

    <error-page>
        <error-code>500</error-code>
        <location>/resources/error.html</location>
    </error-page>

とする。しかし、なぜか、このエラーページが表示されず Servlet コンテナが用意するエラーページになってしまう。しかも、500 だけ。404 ならば設定したページが表示される。

Servlet コンテナは Apache Tomcat Ver.6.0.18 と GlassFish Ver.2 を試した。どちらも同じ。

フィルタが設定されているとそちらが優先されるとか、アプリケーションコンテキストがあると web.xml は無視されるとかという情報がどこかの blog に書いてあったが、どうだろう。フィルタは問題ないようだが...。

とりあえず、さらに古いバージョンの Tomcat と非常にシンプルな Servlet または JSP の組み合わせで試してみようと思う。

Servlet/JSP でのエラーページの表示 その2 に続く。


タグ:Java

Servlet、JSP、JSF の変遷 [IC]

Java 言語を用いて Web アプリケーションを作成する場合、下記のような流れで技術が進んできた...と思う。もっとも、Servlet や JSP は基幹となる技術で JSF になってからも使われ続けているが。というか、Servlet や JSP をラップしていると言うべきか。
  • Servlet
    Java プログラムをサーバで動かす技術。HTTP プロトコルに対応した doGet とか dPost などのメソッドをオーバライドする。あらかじめソースコードをコンパイルしておかなければならない。 HTML を出力するなら、Java ソースコード中に out.print("<h1>Hello</h1>") のように記述する必要がある。Java 言語を用いて Web アプリケーションを作成するのにあたり最も基礎となる技術。

  • JSP
    Servlet だとソースコードをコンパイルしないといけないし、HTML を出力するのに不便であることから、もう少し簡単にできるようにしたのが JSP。HTML 中に「タグ」を書いて Java のクラスのメソッドを呼び出したりすることが出来る。PHP の Java 版のような感じ。あらかじめ、ソースコードをコンパイルしておく必要がない。

  • JSP ver.2.0
    JSP の仕様に EL 式を追加し、カスタムタグライブラリの作成にタグファイルを使用できるようにしたもの。他にも追加点はあるが省略。

  • JSF
    平たく言うと、MVC モデルで言うところのビュー層とコントローラ層を提供するフレームワーク。JSP のカスタムタグライブラリとして提供している。

  • WoodStock
    JSF をベースにした WEB 用の GUI コンポーネント。NetBeans に付属する。NetBeans でビジュアルエディタを使うと、このコンポーネントが使われる。今後の開発は停止するらしい。

  • ICEfaces
    Visual Web JSF, Web UI コンポーネントのマイグレーション によると WoodStock が開発停止して、今後はこちらに注力するらしい。ICEfaces に関しては 【ハウツー】JavaScriptの記述が不要! Java開発者向け本格的AjaxフレームワークICEfaces (1) JSFの文法でAjaxアプリを作成可能 (マイコミジャーナル) が詳しい。WoodStock と同様に JSF ベースの GUI コンポーネント。

  • JSF 2.0
    【特集】JBoss Seam - EJB 3.0時代のフレームワークを使いこなす (8) Faceletsとは (マイコミジャーナル
    Facelets が取り込まれるかも。JSP ベースの JSF ではなくなる模様。Tapestry みたいなもの?まだ正式に決まっていない。

他にも、Struts、Struts 2、Maaya、Spring、Wicket、Tapestry とかたくさんある。

JSP と JSF の関係を巧く表しているのが、【特集】JBoss Seam - EJB 3.0時代のフレームワークを使いこなす (8) Faceletsとは (マイコミジャーナル) にある次の文章。

JSP(Java Server Pages)はHTMLで記述されたWebページ上で動的なコンテンツを出力することのできる技術である。それに対してJSFは、動的なWebページの構築にコンポーネント・ベースのモデルを導入するためのフレームワークと言える。ただしJSFの仕様はJSPを拡張する形で設計されているため、JSFによるアプリケーションの作成はJSFのカスタム・タグを用いてプログラミングすることが作業の中心となる。
つまり、結局は、JSP に何かタグを書いて、そのタグの定義を別のファイルに書く。これらはライブラリにすることができ、そうすると、コンポーネントとして再利用しやすくなるよね、みたいなもの...だと思う。

JSF に関しては JSFアプリケーションの“表”と“裏” - ITアーキテクト [IT Architect] も参考になる。
タグ:Java

Servlet、JSP が使用可能なレンタルサーバ [IC]

Servlet や JSP が使用できるレンタルサーバというと、専用サーバか VPS (Virtual Private Server) くらいしか知らなかったのだが、1strentalserver というのを見つけた。

¥2520/月 で Tomcat が使える。アカウントごとの仮想 JVM を提供するという。PressNetwork | 1stレンタルサーバー日本初となるJVMを採用した新感覚のJAVA共用プランを開始 で公開されているプレスリリースによると、2008年8月29日よりこのサービスを開始した模様。

価格は問題ないが、信頼性とか性能とかサポートとかもろもろの評判はどうなのだろうか?

2ch ではサポートが微妙っぽい情報があったが、そもそも 1strentalserver で検索しても使用している例があまり見つからない。各種ブログ検索にもヒットしないようだ。裏を取りたかったのだが...。Web には

1strentalserver はサーバー業界で共用レンタルサーバー、専用サーバー分野における草分け的存在です。
とフッターがあるにもかかわらず、全然情報が見つからないのだが...。

まぁ、価格が安いのでちょっと利用してみて問題があれば引っ越すというのが良さそうだ。
タグ:サーバ

iCalendar 形式を扱うライブラリ [IC]

iCalendar 形式(*.ics) を扱うライブラリには iCal4j - Introduction がある。これは、Java で記述されたライブラリである。SourceForge.net: iCal4j を見ると BSD ライセンスになっている。iCal4j のライセンスの項目も同じなので大丈夫であろう。BSD ライセンスであれば、色々とカスタマイズも出来て(さらに公開する必要が無く)便利である。
タグ:icalendar

iCalendar 形式とは? [IC]

Google Calendar は iCalendar 形式の URL を参照できる。 iCal - WikipediaiCalendar - Wikipedia によると、iCalendar はもともと、iCal というソフトウェアのフォーマットだったようだ。このフォーマットは RFC 2445 で Internet Calendaring and Scheduling Core Object Specification (iCalendar) として定められている。全部ではないが、iCalendar Contents - Frog's Labo - livedoor Wiki(ウィキ) に邦訳が公開されている。

また、RFC 2446 iCalendar Transport-Independent Interoperability Protocol(iTIP) - Scheduling Events, BusyTime, To-dos and Journal EntriesRFC 2447 iCalendar Message-Based Interoperability Protocol(iMIP) にも関連する仕様がある。

例えば、iCal天気 - Weather Hacks - livedoor 天気情報 では iCal 形式で天気予報を配信しており、Google Calendar で読み込むことができる。他にも、アップル - iCal - カレンダーライブラリ で配信されている。


タグ:icalendar

iKnow -API 手習い - [IC]

iKnow -Developer Challenge - というエントリを書いたので、少し API を使ってみる。

例えば、iKnow! で学習しているアイテム数を得るには study results を使えばよい。API リファレンスには

You can use "total_summary" data to show study badges, ranking etc.
(It's included in "results" tag as attributres in XML responses)
"study_results" is for progress graphs etc.

と書いてある。学習しているアイテム数を表示するようなバッジやランキングなんかを作るなら total_summary を使えば良い。これがあれば、blog parts なんかは簡単にできそうだ。

API は XML か JSON で結果が返ってくるので、

とすれば簡単に XML で結果が取得できる。ちなみに iKnow! では、あるユーザが学習しているコースやアイテム数は公開される情報となっている。それが良い設計か否かは微妙だが。

 


タグ:iKnow

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。