2016-03-05 10 views
0

У меня проблема с добавлением сервлета в мой проект.
Я создал новый проект webapp в eclipse ee, используя maven.
это дерево каталогов я получил:Tomcat не может заставить сервлеты работать

Deployment Descriptor. 
| 
JavaScript Resources 
| 
Deployed Resources 
| 
Java Resources . 
    | 
    Libraries 
    | 
    src/main/resources 
     | 
     com 
      | 
      saeedh 
        | 
        servlets 
          | 
          start 
           | 
            Login.java 
    | 
    src 
     | 
     main 
      | 
      webapp 
        | 
        index.jsp 
        | 
        register.jsp 
        | 
        css 
        | 
        WEB-INF 
          | 
          web.xml 
      | 
      resources 
        | 
        com 
         | 
         saeedh 
           | 
           servlets 
             | 
             start 
              | 
              Login.java  

мой web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> 

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1" 
    metadata-complete="true"> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
    <servlet-name>Login</servlet-name> 
    <servlet-class>com.saeedh.servlets.start.Login</servlet-class> 
    </servlet> 

</web-app> 

мой pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.saeedh</groupId> 
    <artifactId>SocialNetwork</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>SocialNetwork Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.restlet.jee</groupId> 
     <artifactId>org.restlet</artifactId> 
     <version>2.3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.restlet.jee</groupId> 
     <artifactId>org.restlet.ext.servlet</artifactId> 
     <version>2.3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.6</version> 
    </dependency> 
    </dependencies> 
    <repositories> 
     <repository> 
      <id>maven-restlet</id> 
      <name>Restlet repository</name> 
      <url>https://maven.restlet.com</url> 
     </repository> 
    </repositories> 
    <build> 
    <finalName>SocialNetwork</finalName> 
     <plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.0</version> 
    <configuration> 
    <source>1.7</source> 
    <target>1.7</target> 
    </configuration> 
    </plugin> 
    </plugins> 
    </build> 
</project> 

Войти сервлет:

@WebServlet("/Login") 
public class Login extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 

     if (request.getParameter("register") != null) { 
      response.sendRedirect("register.jsp"); 
     } 
     else if (request.getParameter("login") != null) { 

     } 

    } 

} 

in in dex.jsp, у меня есть две кнопки отправки один со значением = "register", а другой со значением = "login".
если я запустить проект выше, я получаю главную страницу, которая index.jsp, но если я нажимаю на регистр/кнопку Логин я получаю сообщение об ошибке:
HTTP Status 404 -/SocialNetwork/Войти
если я добавить отображение в сервлет:

<servlet-mapping> 
    <servlet-name>Login</servlet-name> 
    <url-pattern>/Login</url-pattern> 
</servlet-mapping> 

я получаю сообщение об ошибке:
HTTP Status 500 - Ошибка инстанцировании сервлет класса com.test.Test

также я заметил т Я не получаю скомпилированные файлы сервлетов (.class) в любом из каталогов, что я делаю неправильно?

Примечания:
я нашел много проблем с получением сервлетов на работу, но ни один не соответствовал моему каталогу дерева или я пробовал решение мотивационное и не работало.

ответ

1

Ваш источник Java для сервлета не должен быть ниже src/main/resources, переместите его на src/main/java. Если у вас есть какие-либо файлы свойств или пакеты ресурсов или другие файлы внешних ресурсов, которые необходимо прочитать с сервлета (или другого кода Java); те будут идти в src/main/resources (если это не для тестирование, а затем src/test/resoures или src/test/java, для тестирования кода).

Смежные вопросы