Я скомпилированный исходный код в классе Files
, а затем гнал в папке:Tomcat 5.5 Не Find My Servlet
Tomcat 5.5\WEB-INF\ROOT\classes\Files.class
И добавил это к web.xml
файла:
<servlet>
<servlet-name>Files</servlet-name>
<servlet-class>Files</servlet-class>
</servlet>
Но когда я попытался получить доступ к URL http://localhost:8080/Files
, я получил эту ошибку от Tomcat: Tomcat 5.5 404 Error http://img251.imageshack.us/img251/5042/tomcat404.png
Update: после добавления <servlet-mapping>
Теперь я получаю следующее сообщение об ошибке:
exception
javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:837)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1287)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.NoClassDefFoundError: IllegalName: /Files
java.lang.ClassLoader.preDefineClass(Unknown Source)
java.lang.ClassLoader.defineClassCond(Unknown Source)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1960)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:931)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1405)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:837)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1287)
java.lang.Thread.run(Unknown Source)
Заметим, что кладя классы сервлетов в пакете по умолчанию не приветствуется. Tomcat является снисходительным в этом, но в некоторых конфигурациях Tomcat и в других сервлет-контейнерах вы рискуете, что сервлет не может быть установлен/загружен. Всегда ставьте классы, которые должны быть загружены/импортированы другими классами внутри пакета. – BalusC
Я знаю, но это всего лишь простой тест. Тогда я не использовал пакеты. –
Это может быть основной причиной этой проблемы. Чтение журналов запуска сервера в '/ logs'. – BalusC