🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

Q&A

解決済

1回答

4241閲覧

web.xmlを書き換えたらtomcatサーバーが始動できなくなった。

leeev

総合スコア20

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

0グッド

0クリップ

投稿2019/12/01 07:48

eclipseでweb.xmlを以下のように書き換えたところ、サーバーが始動できなくなりました。
どのようにすれば改善するでしょうか。
イメージ説明

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>ExecuteLogin</servlet-name> <servlet-class>controller.ExecuteLogin</servlet-class> </servlet> <servlet-mapping> <servlet-name>ExecuteLogin</servlet-name> <url-pattern>/ExecuteLogin</url-pattern> </servlet-mapping> <servlet> <servlet-name>ExecuteLogout</servlet-name> <servlet-class>controller.ExecuteLogout</servlet-class> </servlet> <servlet-mapping> <servlet-name>ExecuteLogout</servlet-name> <url-pattern>/ExecuteLogout</url-pattern> </servlet-mapping> <servlet> <servlet-name>Input</servlet-name> <servlet-class>controller.Input</servlet-class> </servlet> <servlet-mapping> <servlet-name>Input</servlet-name> <url-pattern>/Input</url-pattern> </servlet-mapping> <servlet> <servlet-name>ShowAll</servlet-name> <servlet-class>controller.ShowAll</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowAll</servlet-name> <url-pattern>/ShowAll</url-pattern> </servlet-mapping> </web-app>

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

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

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

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

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

guest

回答1

0

ベストアンサー

デプロイメント・ディスクリプタ(web.xml)の内容と、実際のサーブレットクラス名とでは特に問題はありませんでした。
ですのでweb.xmlの問題ではありません。質問内容から推察できる内容は以下です。

  • コンパイルエラーが出ていないか
  • 起動時のエラーログから問題の箇所が特定できないか
  • web.xmlに登録しているクラス(サーブレット)は、javax.servlet.http.HttpServlet ないしはそのサブクラスを継承しているか
  • すでに起動中のTomcatなど、8080ポートを利用しているサービスが起動していないか

投稿2019/12/01 10:00

A-pZ

総合スコア12011

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

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

leeev

2019/12/01 10:50

以下のエラーログが出ています。勉強し始めたばかりなのでちんぷんかんぷんです… java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: コンポーネント[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/practice]]の開始に失敗しました。 at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475) Caused by: org.apache.catalina.LifecycleException: コンポーネント[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/practice]]の開始に失敗しました。 at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException: サーブレット [Input] と [controller.Input] を同じ url-pattern [/Input] にマッピングすることはできません。 at org.apache.tomcat.util.descriptor.web.WebXml.addServletMappingDecoded(WebXml.java:342) at org.apache.tomcat.util.descriptor.web.WebXml.addServletMapping(WebXml.java:335) at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2459) at org.apache.catalina.startup.ContextConfig.processClass(ContextConfig.java:2135) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2124) at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:2016) at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:2010) at org.apache.catalina.startup.ContextConfig.processClasses(ContextConfig.java:1233) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1142) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5051) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
A-pZ

2019/12/01 11:36

Caused by: java.lang.IllegalArgumentException: サーブレット [Input] と [controller.Input] を同じ url-pattern [/Input] にマッピングすることはできません。 とあるように、サーブレットの定義が重複しているようです。 InputServlet に次の記述はありませんか? @WebServlet("/Input") これはweb.xmlに登録するのと同じ意味があります。
leeev

2019/12/01 14:03

ご指摘の通り@webservlet~の記述が原因でした。 無事解決できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問