2009年10月1日木曜日

Flex Builder 3をEclipse 3.4 Ganymedeにインストール

Adobe Flex Builder 3.0.2をPleiades All in One Eclipse 3.4 (Ganymede)にインストールした。結果的にはうまく動かすことができたが、途中はまったのでメモ。

私が使っていた
Eclipse 3.4 (Ganymede)は、Flex Builder 3では正式にサポートされていないので、試される方は自己責任で。

普通にPlugin版のFlex Builderをインストールすると、右のように「製品拡張が自動的に確立されない」という謎めいたエラーメッセージを表示してインストールが終了してしまう。ただ、Pluginのファイル自体はディスク上にインストールされているようだ。

Eclipse (Ganymede)を起動して「ヘルプ」より、「ソフトウェア更新」より「サイトの追加」ボタンで、下記を指定する。
"C:\Program Files\Adobe\Flex Builder 3 Plug-in\com.adobe.flexbuilder.update.site"

Flex Builder のインストール時のダイアログ(右上)で指定しているパスとは異なるので注意。ダイアログ通りにやって何度も失敗した…

するとプラグインが表示されるので選択してから「インストール」ボタンを押せばOK!!
なお、起動はスタートアップメニューに用意されたFlex Builder Eclipseランチャーではなく、これまでどおりのPleiades 版 Eclipseの起動方法でうまくいっている。


Flex Builder はスタンドアロンでインストールするとFlex開発はもちろんできるが、Java開発のために色々追加する必要があるので、普段Java開発で使用しているEclipseで使用できると便利。

ちなみに、Eclipse 3.5 (Galileo)ではインストールまでは進むものの依存性のエラーで最終的には失敗した。



追記:
このあと、Google Plugin やSubclipse Plugin(の更新)をソフトウェア更新からインストールしようとしたら、なぜか選択してもいないFlex Builderの依存性チェックエラーが表示されてPluginのインストールができない状況が発生。
解決方法が分からず、いったんFlex Builder Pluginを削除⇒必要なPluginをインストール⇒再度Flex Builder Pluginをインストールという手順をとってしまった。毎回コレだけっこうつらい。

…回避方法の分かる方、教えてください。

2009年9月8日火曜日

HeritrixのBasic/Digest認証

HeritrixのJobを試していたが、Digest認証(Apache 2.2)で保護されているWebサイトに接続しても、401のエラーになってしまい困っていた。どうも、Settingの内容が間違っていたみたい。
手順メモ

1. Submodulesにorg.archive.crawler.datamodel.credential.Rfc2617Credentialを追加

2. Setting画面で"expert setting"に切替える

3. credential-storeの設定項目に下記を設定
 credential-domain: ホスト名(http://xxxxxx/...のxxxxxxの部分)
 realm: 認証エリアの名前(Apacheのhttpd.confの"AuthName"の部分)
 login:/password: 正しく認証されるものを設定

ここまで設定すれば正しくされる。私の場合は、realmの設定内容がわからなくて、"Basic"だの"Digest"だのを設定してずいぶんハマッた。…ふぅ

追記: HTTPなどのエラーコードは、HeritrixのWeb UIの"Help"内の"URI Fetch Status Codes"にまとまっているので便利だと気づいた。もちろんHeritrixサーバが起動していないと見れないけど。

2009年9月7日月曜日

Heritrix on Windows 2nd

前回のつづき、Windows XPで動かしたら上手くいかなかったので、今度は推奨環境にあわせて、手持ちのLinux(CentOS4.7)で実行した。

普通にコマンドラインで立ち上げてから、管理画面(localhost:8080)にブラウザで接続し、デフォルトProfileの設定内容を確認してみる。Windowsでは初期値が上手く取得出来ていなかったところ。

下記が、デフォルトProfileのModules設定内容一覧

Select Crawl Scope
org.archive.crawler.deciderules.DecidingScope

Select URI Frontier
org.archive.crawler.frontier.BdbFrontier

Pre Processors Processors
org.archive.crawler.prefetch.Preselector
org.archive.crawler.prefetch.PreconditionEnforcer

Fetchers Processors
org.archive.crawler.fetcher.FetchDNS
org.archive.crawler.fetcher.FetchHTTP

Extractors Processors
org.archive.crawler.extractor.ExtractorHTTP
org.archive.crawler.extractor.ExtractorHTML
org.archive.crawler.extractor.ExtractorCSS
org.archive.crawler.extractor.ExtractorJS
org.archive.crawler.extractor.ExtractorSWF

Writers Processors
org.archive.crawler.writer.ARCWriterProcessor

Post Processors Processors
org.archive.crawler.postprocessor.CrawlStateUpdater
org.archive.crawler.postprocessor.LinksScoper
org.archive.crawler.postprocessor.FrontierScheduler


このProfileをベースに新しいJobを作成する。
Modulesは、とりあえず初期値のままとして、設定が必須なのは、Settiongsのuser-agent:とfrom:の部分だけのようだ。ドキュメントに従い下記を設定する。

user-agent: my-heritrix-crawler (+http://mywebsite.com)
from: 自分のメールアドレス

ここで注意が必要なのは、user-agent:の書式で、括弧"("やプラス"+"も含めて書式が決まっている。間違うとJobの実行時にエラーになるので注意。

あと、うまくクロール出来ない場合の対応として、ホスト名をIPアドレスにするとうまくいくみたい。こちらの環境依存だと思うけど、ホスト名にするとJobがいつまでたっても先に進まず止まってしまう…なぜ?
とりあえず、イントラネット利用が目的なので、IPアドレスを指定することとする。