Tôi đang cố gắng để có được vào phát triển web Java nhưng dường như đang chạy vào một vấn đề kỳ lạ với Tomcat và một servlet cực kỳ đơn giản. Nhật ký catalina đang tăng tốc độ này mỗi lần tôi thử tải ứng dụng:Tomcat không thể tìm thấy Servlet của tôi và đang ném ngoại lệ, nhưng tại sao?
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
Tạo cảm giác tốt. Nó dường như không thể tìm thấy servlet của tôi. Tuy nhiên, servlet dường như ở đúng nơi. Tôi rõ ràng có thể thấy nó ở WEB-INF/classes/MyServlet.class
Để tham khảo, đây là file web.xml Tôi hiện đang sử dụng:
<?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>
Như bạn thấy, tôi 'giữ mọi thứ đơn giản ... nhưng nó liên tục ném ngoại lệ này. Ứng dụng web xương trần trông như thế nào trong Java, thành phần nào tôi thiếu?
Cập nhật
Để chắc chắn tuyệt đối nó không phải là một tạo tác của một số loại, tôi bắt đầu lập một bản sao mới của Tomcat và cố gắng một lần nữa. Khi làm như vậy, điều này bắt đầu xuất hiện trong các tập tin log:
SEVERE: Error deploying web application archive mywebapp.war
java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class MyServlet)
tôi đổ tập tin .class của tôi cho lớp MyServlet, xây dựng lại nó với -target 1.5, repackaged các .WAR và tất cả mọi thứ đã làm việc một cách hoàn hảo.
Cảm ơn bạn rất nhiều vì đã giúp đỡ! Một bài học tốt trong xử lý sự cố không bao giờ làm tổn thương bất cứ ai.
Tốt công việc thám tử spligak :-) – toolkit