こんにちは、まいまいです。
Java初心者として日々勉強しています。最近はソケット通信を学んでいるのですが、Webサイトにいい感じのサンプルコードがあったので、まずは丸写し。その後eclipseで動かしてみて、挙動などを確認し用途思ったのですが、そのなかで中々解決しないエラーに遭遇しました。何時間も格闘し、結局原因は分からないも一応解決したので共有しておきます。
org.apache.catalina.websocketのインポートができない
WebSocketのサンプルコードにはよく現れるこちらのライブラリですが、インポート文を書いてもエラーが出て先へ進めませんでした。各サイトでは問題なさそうなのに、全く持って謎です。この問題は、以下のことを試すことで解決できました。
ビルドパスを通す
jarファイルへパスを通さないとだめなので通します。eclipseの場合、プロジェクトを右クリックしビルドパスを選択。その後ライブラリーでApache Tomcat vX.Yを追加します。すでにある場合はそれでOKです。追加は、ライブラリの追加を選択し、サーバランタイムを選択することでApache Tomcat vX.Yを追加できます。
Apache Tomcat vX.Yが選択肢にない場合
その場合、Apache Tomcatプラグインをインストールする必要があります。
ヘルプタブからeclipseマーケットプレイスを選択し、tomcatで検索。検索にヒットしたtomcatプラグインをインストールします。完了してeclipseを再起動すればOKです。
なお、私の場合はtomcatプラグインだけではなく、そもそもtomcatをダウンロードする必要がありました。その場合はブラウザを開いてtomcatのページへ行き、zipやtarファイルを選んでダウンロード。適当な場所に展開し、eclipseのウィンドウ、設定、tomcatでtomcatホームを編集。解凍したフォルダを指定します。
それでもtomcatサーバがない場合
もしかしたら、サーバを作っていないだけかもしれません。ウィンドウ、設定、サーバ、ランタイム環境、追加からtomcatサーバを追加します。その際バージョンを選択しますが、これは自分がダウンロードしたバージョンを選択し、その後解凍したフォルダを選択します。
それでもインポートのエラーが直らない場合
tomcatサーバをv7.x系にしてみてください。私の場合、tomcat v8.xではエラーが出ましたが、v7.xに変えるだけでエラーが消えました。こればっかりは謎ですが、やはり私がtomcatやeclipseについての根本的な知識が不足しているのが悪いですね。勉強します。
まとめ
eclipseでorg.apache.catalina.websocketのインポートでエラーが出る場合の対処法をご紹介しました。ビルドパスは忘れがちなので気をつける必要がありますね。tomcatバージョンでエラーが消えるのは謎ですが、解決したのでひとまずOKです。最後までお読みいただきありがとうございました。