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

前端之家收集整理的这篇文章主要介绍了java – Tomcat无法找到我的Servlet并抛出异常,但为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图进入 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似乎在正确的位置. X-4545 X-4545 X-4545 X- 200 X- 200 X- 200 200 X- 200 200 X-

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

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> 
    <description>My first web app in Java.</description>
    <display-name>My Web App</display-name>

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>MyServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>
</web-app>

200新X-45旗新新新旗新新旗新新200新200旗新200旗新新旗新新旗200新新新旗新新旗2001-新新新新旗新旗新新旗旗哨旗新新旗新新旗旗在Java中,裸机Web应用程序是什么样的,我缺少哪些组件?

更新

为了绝对确定它不是某种工具,我启动了一个新的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,一切都很完美.

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

解决方法

那么鉴于更新的信息,似乎你的问题是你用于你的类的编译器可能是一个比运行Tomcat的更新版本的JDK.

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

这应该清除你的问题.

猜你在找的Java相关文章