UserManager.java
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import shoppingcart.model.Cart;
import shoppingcart.model.User;public class UserManager {
public static final String persistenceUnit="shoppingCart";
private EntityManager em;

public  UserManager(String persistenceUnit){
EntityManagerFactory emf=Persistence.createEntityManagerFactory(persistenceUnit);
this.em=emf.createEntityManager();
}public Long isUserExist(String userName,String password){
String jql="select count(u) from User u where u.userName= :userName and u.password= :password";
Long count=new Long(0);
count=(Long)em.createQuery(jql).setParameter("u.userName", userName).setParameter("u.password", password).getSingleResult();
    if(count==null){
     count=0l;
    }
return count;
}
public User getExistUser(String userName,String password){
em.getTransaction().begin();
String jql="from User u where u.userName=:userName and u.password=:password";
User user=(User)em.createQuery(jql).setParameter("u.userName", userName).setParameter("u.password", password).getSingleResult();
    return user;
}
public Long isCartExist(User user){
String jql="select count(c) from Cart c where c.user.userId=user.userId";
Long count=new Long(0);
count=(Long)em.createQuery(jql).setParameter("user.userId", user.getUserId()).getSingleResult();
    return count;
}
public Cart getExistCart(User user){
String jql="from Cart c where c.user.userId=user.userId";
Cart cart=(Cart)em.createQuery(jql).setParameter("user.userId", user.getUserId()).getSingleResult();
return cart;
}
public Cart createCart(User user){
em.getTransaction().begin();
Cart cart=new Cart();
cart.setUser(user);
em.persist(cart);
em.getTransaction().commit();
return cart;
}
}
LoginServlet.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import shoppingcart.model.Cart;
import shoppingcart.model.User;
import shoppingcart.service.UserManager;public class LoginServlet extends  HttpServlet{
private static final long serialVersionUID = 1L;
UserManager userManager=new UserManager(UserManager.persistenceUnit);

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

String userName=request.getParameter("userName");
String password=request.getParameter("password");
HttpSession session=request.getSession();
Long count=userManager.isUserExist(userName, password);
if(count==0){
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
User user=userManager.getExistUser(userName, password);
if(userManager.isCartExist(user)==0){
Cart cart=userManager.createCart(user);
session.setAttribute("cart", cart);
}else{
Cart cart=userManager.getExistCart(user);
session.setAttribute("cart", cart);
}
request.getRequestDispatcher("showProduct.jsp").forward(request, response);
}
}}
Exception:java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
at org.slf4j.impl.Log4jLoggerAdapter.trace(Log4jLoggerAdapter.java:104)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:221)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at shoppingcart.service.UserManager.<init>(UserManager.java:15)
at shoppingcart.servlet.LoginServlet.<init>(LoginServlet.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1115)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)