我试图进入
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.
这应该清除你的问题.