我已在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
我尝试从Servers选项卡中删除服务器并再次添加。项目干净了吗?似乎没有什么能解决问题。
我的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 home设置为&#34; javac 1.8.0_05
&#34;
。
请帮忙!!!
答案 0 :(得分:1)
您省略了一些相关信息,您的其他servlet映射。 错误告诉了所有:
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
您有两个servlet映射,映射到相同的URI。 尝试将/ 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>
答案 1 :(得分:1)
我认为该堆栈跟踪的关键部分是:
The servlets named [Hello] and [com.crunchify.jsp.servlet.HelloCrunchify] are both mapped to the url-pattern [/CrunchifyServlet] which is not permitted
您将需要删除其中一个servlet或取消冲突url-patterns。您是否有另一个映射到相同url-pattern的应用程序?
答案 2 :(得分:-1)
试试这个:
转到
C:\ Program Files \ Apache Software Foundation \ Apache Tomcat 8.x.xx \ bin
找到
catalina.bat中
将其复制并粘贴到另一个驱动器中,因为Windows不允许您在此处进行编辑。 现在用任何编辑器打开文件。
找到noJuliConfig和noJuliManager,你会到达像这个图像的某个地方 Before Editing
你可以清楚地看到一个set JAVA_OTPS="Something"
的noJuliConfig和noJuliManager。
现在您要做的就是删除双引号,编辑过的部分将如下所示After Editing
现在用这个编辑过的catalina.bat替换原来的catalina.bat。 重新启动IDE。 而且你已经完成了。
你可以稍后感谢我。 :d