2011年12月17日土曜日

servlet-api.jar and Servlet API javadoc

Apache Tomcat packages contain servlet-api.jar.


Servlet API 3.0
http://tomcat.apache.org/download-70.cgi (Tomcat 7.0)
apache-tomcat-7.0.23/lib/servlet-api.jar
Javadoc

Servlet API 2.5
http://tomcat.apache.org/download-60.cgi (Tomcat 6.0)
apache-tomcat-6.0.35/lib/servlet-api.jar
Javadoc

Servlet API 2.4
http://tomcat.apache.org/download-55.cgi (Tomcat 5.5)
apache-tomcat-5.5.34/common/lib/servlet-api.jar
Javadoc

2011年12月16日金曜日

無料でプライベートGitリポジトリーを作り放題のクラウドストレージ

Windows Live Mesh を使えば、無料でクラウド上の 5GB の領域に、プライベートリポジトリ数無制限で GIT プロジェクト群をホスティングできることに気付いた。手順は、大雑把に言うと次の通り。

  1. ローカルマシン上に作業用 Git リポジトリーを作成する。
  2. 1.で作成したリポジトリから、ローカルマシン上にベアリポジトリーを作成する。
  3. 2. で作成したベアリポジトリーを、Windows Live Mesh で SkyDrive と同期する設定にする。

Eclipse で作業する場合の具体的な手順は次のとおり。


作業用 Git リポジトリーの作成

(1) 「ファイル」→「新規」から、新しいプロジェクトを作成する。ここでは、myproject という名前のプロジェクトを作成することにする。

(2) プロジェクト名を右クリックし、「チーム」→「プロジェクトの共用...」と進み、表示された「プロジェクトの共用」ダイアログで Git を選択し、「次へ」ボタンを押す。



(3) 「Git リポジトリー構成」ダイアログで、リポジトリー指定欄の右にある「作成...」ボタンを押す。

(4) 「Git リポジトリーの作成」ダイアログで、作成するリポジトリーを指定する。ここでは、C:\Users\Takahiko\Dev\Git フォルダ内に myproject という名前で作成することにする。



(5) 「Git リポジトリー構成」ダイアログに戻るので、「完了」ボタンを押す。



(6) プロジェクト名を右クリックし、「チーム」→「コミット...」と進み、コミットする。




ベアリポジトリーの作成

ここでは、C:\Users\Takahiko\Documents\Cloud\Dev\Git\myproject.git というベアリポジトリーを作成することにする。Cygwin で作業する場合は次のようになる。

(7) ベアリポジトリー用のフォルダーを作成して、そこに移動する。

mkdir -p /cygdrive/c/Users/Takahiko/Documents/Cloud/Dev/Git
cd /cygdrive/c/Users/Takahiko/Documents/Cloud/Dev/Git

(8) --bare オプションをつけて git clone を実行する。(ベアリポジトリー名の末尾に .git を付けるのは慣習)

git clone --bare /cygdrive/c/Users/Takahiko/Dev/Git/myproject myproject.git

(9) 作業用リポジトリーがベアリポジトリーを参照するように設定する。具体的には、作業用リポジトリーフォルダーをエクスプローラーで開き、右クリックでコンテキストメニューを表示して「TortoiseGit」→「Settings」と進み(TortoiseGitインストール済みと仮定)、Git → Remote で、リモートの設定をおこなう。Remote 名は何でもいいが無難に origin、URL にはベアリポジトリーのパスを指定する。

Remote: origin
URL: C:/Users/Takahiko/Documents/Cloud/Dev/Git/myproject.git



(10) Eclipse に戻り、リモート設定がうまくいっているかを試す。具体的には、プロジェクト名を右クリックし、「チーム」→「アップストリームへプッシュ」をおこない、エラーが出なければ OK。現時点では [up to date] と表示されるはず。




Windows Live Mesh で同期する

(11) Windows Live Mesh をインストールする。(Windows Live ID [無料] を取得しておく必要がある)

(12) Windows Live Mesh を起動し、ベアリポジトリーを SkyDrive と同期するように設定にする。





上記の作業後、SkyDrive に行って「同期済みフォルダーの表示」をおこなうと、ベアリポジトリーが SkyDrive にアップロードされていることが分かる。





アップロードされているベアリポジトリーは他者からは見えていないはずだからプライベート・リポジトリーである。かつ、この方法を使うと、容量制限 5GB に達しない限り、プライベート・リポジトリーの数に制限はない。加えて、まだ検証できてはいないが、「同期したファイルやフォルダーを共有する」機能を使えば、最大9名と一つのベアリポジトリーを共有して作業できる。これらのことが無料でできるのだから、ありがたい。

Stackoverflow で商用プロジェクト用の GIT リポジトリーホスティングサービスでベストなものはどれか、という議論があり、

Best Git repository hosting for a commercial project?
http://stackoverflow.com/questions/109440/best-git-repository-hosting-for-a-commercial-project

GitHub という選択が優勢のようだが、GitHub の料金プランの一つ Medium は、「プライベート・リポジトリー数 20 で、共同作業者 10 名」で毎月 22 ドルであり、みんなが言うように、高い。

Stackoverflow で挙げられている選択肢のいずれよりも、Windows Live Mesh という選択肢のほうが良いと思う。何と言っても、無料でクラウド上にプライベート Git リポジトリーを作りたい放題。



その後、BitBucket というサービスを知った。共同作業の人数が少ないうちは、プライベートリポジトリーを作りたい放題。これで十分。

http://bitbucket.org/

2011年12月14日水曜日

Eclipse EGit の Auth fail エラーへの対処法

Eclipse の EGit で Team → Push to Upstream がうまくいかず、だいぶ悩んだ。次のようなエラーメッセージが出て、push できなかった。

An internal Exception occurred during push: ssh://ユーザー@ホスト/GITリポジトリ: Auth fail

試行錯誤していたところ、この問題は Eclipse を Windows で使っている場合に起こることを知った。

Auth fail - jGit on Eclipse with Windows
http://blog.phlegx.com/2009/06/17/auth-fail-jgit-on-eclipse-with-windows/

Windows 7 64-bit 版で Eclipse 3.7 (Indigo) を使っている私のケースでは、次の手順を踏むことにより問題を解決できた。


(1) 対象ホスト用の秘密鍵を含むファイルを準備する。

ファイル名の例:
C:\Users\ユーザー名\.ssh\id_rsa


(2) ホームディレクトリの .ssh ディレクトリの下に config というファイルを作成する。

ファイル名の例:
C:\Users\ユーザー名\.ssh\config


(3) config ファイルに次の内容を記述する。

Host = ホスト名
IdentityFile = 秘密鍵ファイル

ファイル内容の例:
Host = example.com
IdentityFile = C:\Users\ユーザー名\.ssh\id_rsa

場合によっては、上記に加えて環境変数 HOME を明示的に「C:\Users\ユーザー名」と設定しておく必要があるかもしれない。