package com.iambookmaster.server; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.jdo.PersistenceManager; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.iambookmaster.client.editor.ModelPersist; import com.iambookmaster.client.locale.AppConstants; import com.iambookmaster.client.locale.AppMessages; import com.iambookmaster.server.beans.JPAUser; import com.iambookmaster.server.dao.DAO; public class SaveBookServlet extends AbstractServlet { private static final long serialVersionUID = 1L; private static final Logger log = Logger.getLogger(SaveBookServlet.class.getName()); public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { perform(req,resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { perform(req,resp); } private void perform(HttpServletRequest req, HttpServletResponse resp)throws IOException { req.setCharacterEncoding("UTF-8"); AppConstants appConstants = LocalMessages.getInstance(AppConstants.class, LocalMessages.getLocale(req,resp)); AppMessages appMessages = LocalMessages.getInstance(AppMessages.class, LocalMessages.getLocale(req,resp)); try { PersistenceManager em = getPM(req); JPAUser user = getUser(req,resp); ModelPersist model = getModelFromRequest(em, user, req, resp,appConstants,appMessages); DAO.getBookDAO().mergeBook(em, model, user, false); user.setUpload(null); user.setUploadExternalId(null); success(req,resp); } catch (LogicException e) { replyError(appConstants.serverErrorsWereDetected(),e.getMessage(),req,resp); } catch (Exception e) { e.printStackTrace(); log.log(Level.SEVERE,e.getMessage()); replyError(e,req,resp); } } private void success(HttpServletRequest req, HttpServletResponse resp) throws IOException { String url = resp.encodeRedirectURL(req.getRequestURL().substring(0,req.getRequestURL().lastIndexOf("/"))+"/main.jsp"); log.log(Level.INFO,"Success publiching. url"+url); replyOk(url, req, resp); } }