2

このドキュメントに記載されているように、Eclipse で動的 Web プロジェクトを作成しました: sampledoc

サーバーでプログラムを実行すると、コンソールに次のエラーが表示されます。

Caused by: java.lang.IllegalArgumentException: The servlets named [Hello] and [com.crunchify.jsp.servlet.HelloCrunchify] are both mapped to the url-pattern [/CrunchifyServlet] which is not permitted
    at org.apache.tomcat.util.descriptor.web.WebXml.addServletMapping(WebXml.java:308)
    at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2373)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2055)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1940)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1934)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1934)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1934)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1934)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1147)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)
    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:5150)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 6 more

サーバータブからサーバーを削除して、再度追加してみました。プロジェクトをきれいにしました。何も問題を解決していないようです。

私の 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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>CrunchifyJSPServletExample</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>com.crunchify.jsp.servlet.HelloCrunchify</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/CrunchifyServlet</url-pattern>
</servlet-mapping>

私は Tomcat 8 を使用しており、私の Java ホームは " javac 1.8.0_05" に設定されています。助けてください!!!

4

3 に答える 3

1

いくつかの関連情報、他のサーブレット マッピングを省略しました。エラーはそれをすべて伝えます:

Caused by: java.lang.IllegalArgumentException: The servlets named [Hello] and [com.crunchify.jsp.servlet.HelloCrunchify] are both mapped to the url-pattern [/CrunchifyServlet] which is not permitted

同じ URI にマップされた 2 つのサーブレット マッピングがあります。/CrunchifyServlet の URI を /Crunchify だけに変更してみてください。

<servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>com.crunchify.jsp.servlet.HelloCrunchify</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/Crunchify</url-pattern>
</servlet-mapping>
于 2016-04-03T20:14:48.350 に答える
1

そのスタック トレースの重要な部分は次のとおりだと思います。

The servlets named [Hello] and [com.crunchify.jsp.servlet.HelloCrunchify] are both mapped to the url-pattern [/CrunchifyServlet] which is not permitted

これらのサーブレットのいずれかを削除するか、URL パターンの競合を解消する必要があります。同じ URL パターンにマップされている別のアプリケーションがありますか?

于 2016-04-03T20:15:21.363 に答える
-1

これを試してください:

に行く

C:\Program Files\Apache Software Foundation\Apache Tomcat 8.x.xx\bin

探す

カタリナ.バット

Windowsではここで編集できないため、コピーして別のドライブに貼り付けます。任意のエディターでファイルを開きます。

noJuliConfig と noJuliManager を見つけると、この画像のような場所に到達します。 編集前

set JAVA_OTPS="Something"noJuliConfig と noJuliManager の1 つを明確に確認できます。

あとは二重引用符を削除するだけです。編集後の部分は次のようになります。編集後

元の catalina.bat をこの編集済みの catalina.bat に置き換えるだけです。IDE を再起動します。これで完了です。

後で私に感謝することができます。:D

于 2016-04-03T20:52:00.167 に答える