Salve,
ho realizzato il seguente Controller:
codice:
@WebServlet({"/add","/del", "/list"})
public class Controller extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final Logger logger = LogManager.getLogger(Controller.class);
public Controller() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// getClass().getResource("/log4j2.properties");
String params = "testing log4j";
if (logger.isDebugEnabled()) {
logger.debug("DEBUG: " + params);
}
if (logger.isInfoEnabled()) {
logger.info("INFO: " + params);
}
logger.warn("WARNING: " + params);
logger.error("ERROR: " + params);
logger.fatal("FATAL: " + params);
String path=request.getServletPath()!=null?request.getServletPath():"";
PrintWriter w=response.getWriter();
SessionFactory sessionFactory=HibernateUtils.getSessionFactory();
switch(path) {
case "/add":
String url=request.getParameter("url")!=null?request.getParameter("url"):"";
String title=request.getParameter("title")!=null?request.getParameter("title"):url;
String username=request.getParameter("user")!=null?request.getParameter("user"):"";
if(!url.isEmpty()) {
Session hsession=sessionFactory.getCurrentSession();
hsession.beginTransaction();
try {
User user=new User();
user.setUsername(username);
//register URL
WebPage webPage=new WebPage();
webPage.setUrl(url);
webPage.setTitle(title);
webPage.setUser(user);
hsession.saveOrUpdate(user);
hsession.save(webPage);
hsession.getTransaction().commit();
response.sendRedirect("ok.jsp");
}catch(HibernateException he) {
hsession.getTransaction().rollback();
response.sendRedirect("failed.jsp");
}
}
break;
case "/del":
w.println("del");
case "/list":
Session hsession=sessionFactory.getCurrentSession();
Query query=(Query) hsession.createQuery("from WebPage");
List<WebPage> pages=query.list();
hsession.getTransaction().commit();
request.setAttribute("pageList", pages);
request.getRequestDispatcher("list.jsp").forward(request, response);
break;
default:
w.println("???");
}
}
}
Se digito una url nel browser del tipo : http://localhost:8080/pocket?add?use...t&title=google, il Controller dovrebbe nel metodo doGet() inserire nel db Mysql lo user, l'url e il title.
Ottengo però il seguente errore:
ERROR: testing log4j
FATAL: testing log4j
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
nov 02, 2019 8:49:26 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [webservlet.Controller] in context with path [/pocket] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
at org.apache.catalina.loader.WebappClassLoaderBase.l oadClass(WebappClassLoaderBase.java:1364)
at org.apache.catalina.loader.WebappClassLoaderBase.l oadClass(WebappClassLoaderBase.java:1185)
at org.slf4j.LoggerFactory.getSingleton(LoggerFactory .java:223)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:12 0)
at org.slf4j.LoggerFactory.performInitialization(Logg erFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFa ctory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.ja va:242)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.ja va:255)
at org.hibernate.annotations.common.Version.<clinit>( Version.java:34)
at org.hibernate.annotations.common.reflection.java.J avaReflectionManager.<clinit>(JavaReflectionManage r.java:73)
at org.hibernate.cfg.Configuration.createReflectionMa nager(Configuration.java:2356)
at org.hibernate.cfg.Configuration.createReflectionMa nager(Configuration.java:2352)
at org.hibernate.cfg.Configuration.reset(Configuratio n.java:267)
at org.hibernate.cfg.Configuration.<init>(Configurati on.java:258)
at org.hibernate.cfg.Configuration.<init>(Configurati on.java:262)
at classes.HibernateUtils.buildSessionFactory(Hiberna teUtils.java:16)
at classes.HibernateUtils.<clinit>(HibernateUtils.jav a:12)
at webservlet.Controller.doGet(Controller.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:742)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilt er(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBas e.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve. invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(H ttp11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(A bstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandl er.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProce ssor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker( Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$Wrapping Runnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Cosa succede????? Boh?!
tulipan