質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

2回答

29791閲覧

eclipseからTomcatが起動できない

kazu1990

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2016/07/24 16:34

###前提・実現したいこと
題名の通り、eclipseからTomcatが起動できずに困っております。
解決方法をご存知の方がいれば、ご教授お願いいたします。

###発生している問題・エラーメッセージ

Tomcatを起動していない状態でeclipseから

  1. 起動対象のファイルを右クリック。
  2. コンテキストメニューから[Run As]にホバー。
  3. [1 Run on Server]をクリック

の手順でサーバーを起動すると、

Server Tomcat v8.0 Server at localhost failed to start.

となり、コンソールを確認すると、

重大: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) ... 6 more Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; ... 6 more 7 25, 2016 1:11:59 午前 org.apache.catalina.core.ContainerBase startInternal 重大: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/App]] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/App]] ... 6 more Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; ... 6 more 7 25, 2016 1:11:59 午前 org.apache.catalina.core.ContainerBase startInternal 重大: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] Caused by: org.apache.catalina.LifecycleException: A child container failed during start ... 6 more 7 25, 2016 1:11:59 午前 org.apache.catalina.startup.Catalina start 重大: The required Server component failed to start so Tomcat is unable to start. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] ... 9 more Caused by: org.apache.catalina.LifecycleException: A child container failed during start ... 11 more 7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol pause 情報: Pausing ProtocolHandler ["http-nio-8080"] 7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol pause 情報: Pausing ProtocolHandler ["ajp-nio-8009"] 7 25, 2016 1:11:59 午前 org.apache.catalina.core.StandardService stopInternal 情報: サービス Catalina を停止します 7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol destroy 情報: Destroying ProtocolHandler ["http-nio-8080"] 7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol destroy 重大: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"] java.lang.NullPointerException 7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol destroy 情報: Destroying ProtocolHandler ["ajp-nio-8009"] 7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol destroy 重大: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"] java.lang.NullPointerException

というログが出ていました。

###試したこと

調べてみたところ、LifeCycleExceptionは既にポートが使用されている可能性があるとの事でしたので、

sudo lsof -i -P | grep "LISTEN"

を実行してみると、Javaのプロセスが既に8080ポートを掴んでいました。
Javaアプリケーションなので、Javaのプロセスをkillするわけにはいきません。
どのようにすれば、JavaのプロセスをkillせずにTomcatを起動させられるのでしょうか。

###補足情報(言語/FW/ツール等のバージョンなど)

使用PC:MacBook Air 2013年モデル
OS:OS X Yosemite
Javaバージョン:1.8.0_92
Tomcatバージョン:8.0.36
eclipseバージョン:Neon(4.6)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

注目すべきエラーメッセージは以下です

Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;

「メソッドがない」とのことなのでAPIドキュメントを見てみると、こんな記載があります:
http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html#getVirtualServerName--

Since:
Servlet 3.1

お使いなのは 8.0.36 とのことなので、対応状況を見てみると、うーん対応していますね……。
http://tomcat.apache.org/whichversion.html

となると、意図しない依存ライブラリが混ざり込んでいる可能性が高いです。Tocmat7のライブラリとかが混ざっているのではないでしょうか。


8080ポートに関してですが、それはEclipseから起動しようとしたTomcatそのものだったりしませんか。

7 25, 2016 1:11:59 午前 org.apache.catalina.core.StandardService stopInternal

情報: サービス Catalina を停止します
7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol destroy
情報: Destroying ProtocolHandler ["http-nio-8080"]
7 25, 2016 1:11:59 午前 org.apache.coyote.AbstractProtocol destroy
重大: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]
java.lang.NullPointerException

ぱっと見「起動しようとして失敗したから、終了しようとしたのに、それも失敗した」のように読めます。
Eclipse上のTomcatを強制終了すれば(あるいはEclipseを終了すれば)、8080ポートをつかんでいるJavaプロセスも居なくなるんではないでしょうか。

投稿2016/07/25 02:19

matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Tomcatのポートを8080以外に割り当てて下さい。

投稿2016/07/24 18:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問