当前位置:  开发笔记 > 编程语言 > 正文

Tomcat无法找到我的Servlet并抛出异常,但为什么呢?

如何解决《Tomcat无法找到我的Servlet并抛出异常,但为什么呢?》经验,为你挑选了1个好方法。

我正在尝试进入Java Web开发,但似乎遇到了Tomcat和一个非常简单的servlet的奇怪问题.每当我尝试加载应用程序时,catalina日志就会出现这种情况:

Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name MyServlet
    at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2393)
    at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2373)
    ... 40 more
Mar 4, 2009 10:37:58 AM org.apache.catalina.startup.ContextConfig applicationWebConfig
SEVERE: Parse error in application web.xml file at jndi:/localhost/mywebapp/WEB-INF/web.xml
java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name MyServlet

做得体面.它似乎找不到我的servlet.但是,servlet似乎在正确的位置.我可以在WEB-INF/classes/MyServlet.class中清楚地看到它

作为参考,这是我目前使用的web.xml文件:


 
    My first web app in Java.
    My Web App

    
        MyServlet
        MyServlet
    

    
        MyServlet
        /myservlet
    

正如你所看到的,我保持简单......但它不断抛出这个异常.一个简陋的Web应用程序在Java中是什么样的,我错过了哪些组件?

更新

为了绝对确定它不是某种神器,我启动了一个新的Tomcat副本并再次尝试.这样做后,这开始出现在日志文件中:

SEVERE: Error deploying web application archive mywebapp.war
java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class MyServlet)

我将我的.class文件转储到MyServlet类,用-target 1.5重新构建它,重新打包.war,一切都很完美.

非常感谢你的帮助!排除故障的好教训从不伤害任何人.



1> 小智..:

好吧,鉴于更新的信息,您的问题似乎是您用于类的编译器可能是运行Tomcat的JDK的新版本.

检查用于启动Tomcat的JDK版本,然后查看是否可以执行某些操作来协调它与您用于编译servlet的版本之间的版本差异.

这应该可以解决你的问题.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有