2016-12-03 14 views
2

私は現在、学校用の動的Webプロジェクトを作成中です。私は奇妙な問題に遭遇しています... .jspからサーブレットを実行しようとしています。ファイル。私は多くの研究を行いましたが、明らかに(私が間違っていれば修正してください!).jspファイル内で使用するには、コンパイル済みサーブレットまたはJavaクラスファイルをWEB-INF/classesディレクトリに配置する必要があります。WEB-INF/classesディレクトリが存在する場合、Tomcatサーバーは起動しません。

ビルドパスをこのディレクトリに設定する前に、またはディレクトリを作成する前に、自分のWebアプリケーションを実行することができました。私は、ビルド・パスへの変更を行った二つ目は、私のサーバーが起動することを拒否し、私は今、このエラーを取得しています:

SEVERE: A child container failed during start 
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PullUp]] 
at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915) 
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PullUp]] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) 
... 6 more 
    Caused by: java.lang.IllegalArgumentException: The servlets named [ListingServlet] and [com.pullup.ListingServlet] are both mapped to the url-pattern [/ListingServlet] which is not permitted 
at org.apache.tomcat.util.descriptor.web.WebXml.addServletMappingDecoded(WebXml.java:316) 
at org.apache.tomcat.util.descriptor.web.WebXml.addServletMapping(WebXml.java:309) 
at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2384) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2066) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1951) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1945) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1945) 
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1156) 
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:783) 
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:307) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95) 
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
... 6 more 

誰もがこの問題を解決する方法上の任意のアイデアを持っていますか?どんな助けでも大歓迎です!

+1

'ListServlet'という名前のサーブレットを定義する' web.xml'ファイルと '@ WebServlet'アノテーションを持つ' com.pullup.ListingServlet'という名前のクラスの両方を持っていますか? – Andreas

+0

両方ともそうです。 – calviners

+1

注釈は 'web.xml'に代わるものです。エラーをダブルクリックするとエラーが表示されます。両方をしないでください。 – Andreas

答えて

1

Tomcatはサーブレットクラスをロードしようとしたとき、それは同じサーブレットすなわち、web.xmlから1と@webservletから別のための2つのマッピングを発見したので、あなたは、URLパターン例外にマッピングされたの両方を取得しています。

@webservletはサーブレットのURLマッピング(サーブレットソースコードのインライン)を定義するための代替方法(JavaEE6コンテナ)です。したがって、サーブレットとマッピングをweb.xmlに追加しないでください(WEB-INFフォルダからweb.xmlを削除するだけです)。

+0

ありがとうございます!非常に長い時間これに固執しましたが、この小さな調整はそれを修正しました!もう一度ありがとうございます:) – calviners

関連する問題