1

ich ein dynamisches Web-Projekt in Eclipse erstellt habe, wie in diesem Dokument erwähnt: sampledocIllegal: Die Servlets namens [Hallo] und [com.crunchify.jsp.servlet.HelloCrunchify] beide auf die URL-Muster abgebildet

Wenn ich das Programm in Server laufen, bekomme ich diesen Fehler in der Konsole:

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 

ich habe versucht, den Server aus dem Register Server zu löschen und wieder hinzufügen. Hat ein Projekt sauber gemacht? Nichts scheint das Problem zu lösen.

Mein web.xml wie folgt aussieht:

<?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> 

Ich benutze Tomcat 8 und mein Java Haus ist auf "javac 1.8.0_05" . Bitte helfen !!!

+0

das ist seltsam, es sagt '/ CrunchifyServlet' ist zweimal zugeordnet, aber ich kann nur 1 bei web.xml sehen! – Yazan

Antwort

1

Ich denke, der Schlüssel Teil dieser Stack-Trace ist dies:

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

Sie müssen entweder eine dieser Servlets entfernen oder Dekonflikte die URL-Muster. Haben Sie eine andere Anwendung, die demselben URL-Muster zugeordnet ist?

+0

Danke für die Antwort. Ich habe mein URL-Muster bearbeitet und es hat funktioniert. – Sweet

1

Sie haben einige relevante Informationen, Ihre anderen Servlet-Zuordnungen, weggelassen. Der Fehler sagt alles:

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 

Sie haben zwei Servletzuordnungen, auf den gleichen URI abgebildet. Versuchen Sie, die URI für den/CrunchifyServlet Wechsel nur/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> 
+0

Danke für die Antwort. Ich habe mein URL-Muster bearbeitet und es hat funktioniert. – Sweet

-1

Versuchen Sie dieses:

Zum

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

finden

catalina.bat

kopieren Sie es und fügen Sie es in ein anderes Laufwerk ein, da Windows Sie hier nicht bearbeiten lassen. Jetzt öffnen Sie die Datei mit einem beliebigen Editor.

finden noJuliConfig und noJuliManager, werden Sie irgendwo wie dieses Bild erreichen Before Editing

Sie eindeutig ein set JAVA_OTPS="Something" für noJuliConfig und noJuliManager sehen können.

Alles was Sie jetzt tun müssen, ist die doppelte Anführungszeichen zu entfernen, eine der editierten Teil wird wie dieser After Editing

suchen Jetzt ersetzen Sie einfach die ursprüngliche catalina.bat mit diesem bearbeitet. Starten Sie Ihre IDE neu. und du bist fertig.

Sie können mir später dafür danken. : D

+0

Ich habe das nicht versucht, da es funktioniert, indem ich das URL-Muster wie von Boo und pczeus erwähnt bearbeitet habe. – Sweet

Verwandte Themen