2016-09-23 2 views
-2

Я разрабатываю простое веб-приложение на сервлет. Я не использую IDE. Ниже приведены шаги, которые я выполнил.Сервлет Картирование и развертывание в Tomcat

  1. Структура папок:

    • MYAPP -> Содержит папку WEB-INF и index.html

    • WEB-INF содержит 2 папки и web.xml.

    • Путь к loginServlet.java: MYAPP \ WEB-INF \ Классы \ servletclass \ loginServlet.java

    • WEB_INF содержит Lib папку, conatins сервлетах api.jar

  2. индекс. html содержит форму, и атрибут действия формы содержит «login» в качестве значения.

  3. MYAPP \ WEB-INF \ web.xml выглядит, как показано ниже:

    <?xml version="1.0" encoding="UTF-8"?> 
    <web-app version="3.0" 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_3_0.xsd"> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
    <servlet> 
         <servlet-name>loginServlet</servlet-name> 
         <servlet-class>servletclass.loginServlet</servlet-class> 
    </servlet> 
    
    
    <servlet-mapping> 
         <servlet-name>loginServlet</servlet-name> 
         <url-pattern>/login</url-pattern> 
    </servlet-mapping> 
    
    
    
    <session-config> 
         <session-timeout> 
           30 
         </session-timeout> 
    </session-config> 
    
    </web-app> 
    
  4. составившего loginServlet.java с помощью командной строки. Он создал файл loginServlet.class.

  5. Теперь построили военный файл с помощью командной строки и развернули его на сервере Tomcat.

  6. Теперь, когда я запускаю приложение, он успешно загружает index.html. Но как только нажмите на кнопку Отправить в форме он показывает следующее сообщение об ошибке:

    java.lang.NoClassDefFoundError: servletclass/loginServlet (wrong name: loginServlet) 
    java.lang.ClassLoader.defineClass1(Native Method) 
    java.lang.ClassLoader.defineClass(Unknown Source) 
    java.security.SecureClassLoader.defineClass(Unknown Source) 
    org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2260) 
    org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:803) 
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1244) 
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1109) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:456) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) 
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1452) 
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    java.lang.Thread.run(Unknown Source) 
    
+1

У вас есть объявление пакета в вашем классе сервлетов? http://stackoverflow.com/questions/4621572/cant-run-my-servlet-from-tomcat-server-even-though-the-classes-are-in-package –

ответ

0

Аланы прав, у вас есть следующее заявление в файле Java?

package servletclass; 
Смежные вопросы