bin langsam wirklich am verzweifeln, ich weiß nicht, was ich noch versuchen soll, vielleicht kann mir ja jemand von euch helfen.
ich bekomme auf meinem tomcat 8 server immer die folgende fehlermeldung:
Code:
HTTP Status 404 - /DataAccess3
type Status report
message /DataAccess3
description The requested resource is not available.
servlet klasse DataAccess3.java:
Code:
package data_access;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.User;
import dao.UserDAO;
/**
* Servlet implementation class DataAccess3
*/
//@WebServlet("/DataAccess3")
public class DataAccess3 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* [MENTION=312868]see[/MENTION] HttpServlet#HttpServlet()
*/
public DataAccess3() {
super();
// TODO Auto-generated constructor stub
}
/**
* [MENTION=312868]see[/MENTION] HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// in a JEE environment or when using Spring - this is done by injection
EntityManagerFactory emf1 = Persistence.createEntityManagerFactory("Web-JPA-S");
EntityManager em = emf1.createEntityManager();
UserDAO ud = new UserDAO(em);
User myUser = new User();
myUser.setUsername(request.getParameter("username"));
myUser.setPassword(request.getAttribute("password"));
myUser.setPrename(request.getParameter("prename"));
myUser.setSurname(request.getParameter("surname"));
em.getTransaction().begin();
ud.create(myUser);
em.getTransaction().commit();
request.setAttribute("myUser", myUser);
RequestDispatcher rd = request.getRequestDispatcher("output.jsp");
rd.forward(request, response);
em.close();
}
/**
* [MENTION=312868]see[/MENTION] HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
aufrufende jsp seite register.jsp:
Code:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="get" action="/DataAccess3">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>Prename:</td>
<td><input type="text" name="prename"></td>
</tr>
<tr>
<td>Surname:</td>
<td><input type="text" name="surname"></td>
</tr>
</table>
<button type="submit">Submit</button>
</form>
</body>
</html>
deployment descriptor web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Web-JPA-Muster</display-name>
<servlet>
<servlet-name>dataAccess3</servlet-name>
<servlet-class>data_access.DataAccess3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dataAccess3</servlet-name>
<url-pattern>/dataAccess3</url-pattern>
</servlet-mapping>
</web-app>
die servlet-class propery gibt ja den namen der kompilierten servlet klasse an, muss ich die explizit in mein /data_access/ verzeichnis legen, oder macht eclipse das von selbst? habe beide varianten schon ausprobiert, jedoch immer der gleiche 404 fehlercode
bin für jede hilfe dankbar!
EDIT: habs nun selber rausbekommen, falls jemand irgendwann mal das selbe problem hat, hier das richtige mapping:
web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>FirstServlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>DataAccess3</display-name>
<servlet-name>DataAccess3</servlet-name>
<servlet-class>de.webapp.access.DataAccess3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DataAccess3</servlet-name>
<url-pattern>/DataAccess3</url-pattern>
</servlet-mapping>
</web-app>
und tomcat ordnerstruktur:
Projekt.war in:
.../tomcat/webapps/Projektname/WEB-INF/classes
web.xml in:
.../tomcat/webapps/Projektname/WEB-INF