代码之家  ›  专栏  ›  技术社区  ›  Mohammad

javax/xml/bind/JAXBException

  •  0
  • Mohammad  · 技术社区  · 5 年前

    我使用Eclipse创建了动态项目。在这个项目中,我添加了mysql数据库的hibernate配置。我将servlet用于crud操作。我知道在maven项目中,可以添加所需的依赖项,但不能用于web应用程序。我已经将Java.persistence jar文件添加到lib文件夹中。这是项目结构。 enter image description here

    下面是Hibernate代码。

    package net.javaguides.usermanagement.utl;
    
    import java.util.Properties;
    
    import org.hibernate.SessionFactory;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.cfg.Environment;
    import org.hibernate.service.ServiceRegistry;
    
    import net.javaguides.usermanagement.model.User;
    
    /**
     * Java based configuration
     * @author ramesh Fadatare
     *
     */
    public class HibernateUtil {
     private static SessionFactory sessionFactory;
    
     public static SessionFactory getSessionFactory() {
      if (sessionFactory == null) {
       try {
        Configuration configuration = new Configuration();
    
        // Hibernate settings equivalent to hibernate.cfg.xml's properties
        Properties settings = new Properties();
        settings.put(Environment.DRIVER, "com.mysql.jdbc.Driver");
        settings.put(Environment.URL, "jdbc:mysql://localhost:3306/demo?useSSL=false");
        settings.put(Environment.USER, "root");
        settings.put(Environment.PASS, "");
        settings.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect");
    
        settings.put(Environment.SHOW_SQL, "true");
    
        settings.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
    
        settings.put(Environment.HBM2DDL_AUTO, "create-drop");
    
        configuration.setProperties(settings);
        configuration.addAnnotatedClass(User.class);
    
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
          .applySettings(configuration.getProperties()).build();
        System.out.println("Hibernate Java Config serviceRegistry created");
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        return sessionFactory;
    
       } catch (Exception e) {
        e.printStackTrace();
       }
      }
      return sessionFactory;
     }
    }
    

    这是servlet。

    package net.javaguides.usermanagement.web;
    
    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.List;
    
    import javax.servlet.RequestDispatcher;
    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 net.javaguides.usermanagement.dao.UserDao;
    import net.javaguides.usermanagement.model.User;
    
    /**
     * ControllerServlet.java
     * This servlet acts as a page controller for the application, handling all
     * requests from the user.
     * @email Ramesh Fadatare
     */
    
    @WebServlet("/")
    public class UserServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private UserDao userDao;
    
        public void init() {
            userDao = new UserDao();
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            doGet(request, response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            String action = request.getServletPath();
    
            try {
                switch (action) {
                    case "/new":
                        showNewForm(request, response);
                        break;
                    case "/insert":
                        insertUser(request, response);
                        break;
                    case "/delete":
                        deleteUser(request, response);
                        break;
                    case "/edit":
                        showEditForm(request, response);
                        break;
                    case "/update":
                        updateUser(request, response);
                        break;
                    default:
                        listUser(request, response);
                        break;
                }
            } catch (SQLException ex) {
                throw new ServletException(ex);
            }
        }
    
        private void listUser(HttpServletRequest request, HttpServletResponse response)
        throws SQLException, IOException, ServletException {
            List < User > listUser = userDao.getAllUser();
            request.setAttribute("listUser", listUser);
            RequestDispatcher dispatcher = request.getRequestDispatcher("user-list.jsp");
            dispatcher.forward(request, response);
        }
    
        private void showNewForm(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            RequestDispatcher dispatcher = request.getRequestDispatcher("user-form.jsp");
            dispatcher.forward(request, response);
        }
    
        private void showEditForm(HttpServletRequest request, HttpServletResponse response)
        throws SQLException, ServletException, IOException {
            int id = Integer.parseInt(request.getParameter("id"));
            User existingUser = userDao.getUser(id);
            RequestDispatcher dispatcher = request.getRequestDispatcher("user-form.jsp");
            request.setAttribute("user", existingUser);
            dispatcher.forward(request, response);
    
        }
    
        private void insertUser(HttpServletRequest request, HttpServletResponse response)
        throws SQLException, IOException {
            String name = request.getParameter("name");
            String email = request.getParameter("email");
            String country = request.getParameter("country");
            User newUser = new User(name, email, country);
            userDao.saveUser(newUser);
            response.sendRedirect("list");
        }
    
        private void updateUser(HttpServletRequest request, HttpServletResponse response)
        throws SQLException, IOException {
            int id = Integer.parseInt(request.getParameter("id"));
            String name = request.getParameter("name");
            String email = request.getParameter("email");
            String country = request.getParameter("country");
    
            User user = new User(id, name, email, country);
            userDao.updateUser(user);
            response.sendRedirect("list");
        }
    
        private void deleteUser(HttpServletRequest request, HttpServletResponse response)
        throws SQLException, IOException {
            int id = Integer.parseInt(request.getParameter("id"));
            userDao.deleteUser(id);
            response.sendRedirect("list");
        }
    }
    

    enter image description here

    0 回复  |  直到 5 年前
        1
  •  2
  •   jccampanero    5 年前

    正如@andrewjames所指出的,您需要下载JAXB-API库和一个实现,它们是Hibernate所必需的。

    jar 链接,您可以在 Files

    您需要下载:

    你已经有了 javax.activation 在你的依赖中。它是JAXB-API所必需的。