mavenやEclipseでプラグインリポジトリに繋がらない件、解消
自宅ネットワーク関連で詰まっていたことがようやく解消されたので、ここに経緯も含めてメモしておく。
いや〜、なんとまぁ基礎的な部分に気付けなかったことか。。。
経緯
日記「開発クライアントの作成&m2e - oknknicの日記」でSeasar2開発環境を整えたが、
SAStrutsプロジェクト(by Dolteng)をデプロイしたtomcatを起動すると、以下のエラー。
致命的: フィルタ routingfilter の起動中の例外です
java.lang.ClassNotFoundException: org.seasar.struts.filter.RoutingFilter
とりあえず上記クラスを型検索してみると、型は見つかった。
Mavenリポジトリ内にあるjarに入っているようだ。
Mavenリポジトリ内のjarは、 Maven Dependencies という括りで、ビルドパスに含まれている。
しかしこれは、Tomcatからは見えていないようだ。
(実際、プロジェクト/src/main/webapp/WEB-INF/lib 内には、該当のjarは存在しない)
そこで、以下のコマンドでぶちこんでやれば良いのではと考えた。
mvn dependency:copy-dependencies -DoutputDirectory=.\src\main\webapp\WEB-INF\lib
これが恐怖の始まりだった。
プラグインダウンロードの途中でフリーズ。。
以下のプロンプトが出て、43336から進まない。しかも、やり直す毎に、とまるタイミングはマチマチ。なんだこれは。。
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.0/maven-dependency-plugin-2.0.jar
しかも、上記URLをWebブラウザからアクセスすると、あっさりダウンロードできる。マジどういうこと!?
netstat で状態を確認すると、ESTABLISHの状態が続いている。
これじゃわからん。
てことで、Wiresharkでパケットレベルで見る。
すると・・・
「TCP ZeroWindow」を送り、「TCP Keep-Alive」が返ってくる、という流れを繰り返している。
何じゃこりゃ。
ってことで、「TCP ZeroWindow」を軽くぐぐると、以下のページ。
「ウィンドウが一杯だから待ってくれ」って送ってる感じか。何故・・・
とりあえずウィンドウサイズを上げる方法でも調べるか。ってことで、下記ページ。
う〜ん、ウィンドウサイズは手動設定できなくなったようだ。
駄目モトで、mvn実行時のメモリサイズを上げてみる。
set MAVEN_OPTS=-Xmx2048M
変化なし。。
まぁ、TCPレベルの話だから当たり前か。
う〜ん、う〜ん、、う〜〜〜〜ん、、、、
ってところで、解決不能な問題から逃げるように、Seasar2から離れていっていた。。
時は経ち、今回、Railsを触る機会にあたった。
gemも何の問題もなく動作してくれ、気分は上々だった。
しかし、EclipseにAptanaプラグインを入れようとしたとき、あの恐怖が再燃。。。
そう、「TCP ZeroWindow」だ。
しかも状況はさらに重なって、対象のファイル(content.jar)はWEBブラウザからはあっさりダウンロードできる。
打ちひしがれた。。。
が、今回は一筋の光が・・・
ほうほう。FTPがパッシブモードになってないと駄目なのか。
ほうほう、ここをこうして・・・
って、パッシブモードになってるしorz。。。
てかFTPじゃなくてHTTPで通信してるし、関係ないやん。。
短い光だった。
だが、ここで気付いた。
そう、共通点がある。
Webブラウザからは見れて、それ以外のHTTPクライアントからは見えない。
やはり、ポートの問題としか考えられん。
そういえば、このノートPC買って真っ先にセキュリティソフトのAVG入れたな。
・・・!!??
で、でで、ででで出来たーーーーーーーーーーー!!!!
結論
ネットワーク周りで何故か繋がらんとかあったら、
とりあえずセキュリティソフトを無効にして、問題切り分けしよ♪
(※ただし、脅威にさらされるリスクを十分に認識しておくこと)