回答編集履歴

1 誤字修正

amadablam

amadablam score 322

2016/11/22 15:51  投稿

まず、ClassNotFoundExceptionは文字通り、「(必要な)クラスが見つからない」という意味の例外です。この例外がスローされた場合には、そのクラスが実行時のビルドパスにきちんと含められているかどうかを確認しましょう。
提示のスタックとレースからわかることは、org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainerクラスが存在しないとのことなので、Eclipseを使用しているのであればパッケージ・エクスプローラー上で参照ライブラリを展開して確認してみれば、実際に存在しないことがわかると思います。
提示のスタック・トレースからわかることは、org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainerクラスが存在しないとのことなので、Eclipseを使用しているのであればパッケージ・エクスプローラー上で参照ライブラリを展開して確認してみれば、実際に存在しないことがわかると思います。
さて、JARファイルを個別に取得してビルドパスを設定するのは依存関係の解決などで上級者向けのスキルが要求される場合があるため、一般的にはMavenやGradleなどのパッケージ・マネージャを利用することが推奨されます。提示されているTyrusのページにはMavenの設定が載っているにもかかわらず、JARアーカイブを使用したのは何か理由がありますか?
さらに参考にされているプログラム例のページは3年以上も昔の記事ですよね。新しいIT技術の世界では3年も経てば、APIや技術仕様がすっかり変わってしまっている可能性が高いため、Googleで参考記事を探す場合には日付の絞り込みを行ってできるだけ1年以内の記事を探すようにしましょう。少なくともTyrusのサイトの公式の「[Get Started](https://tyrus.java.net/documentation/1.13/index/getting-started.html)」があり、こちらで紹介されている、同様のエコーサーバーのサンプル・プログラムはきちんと動きます。Mavenを使用し、公式サイトのサンプルを試してみてください。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る