You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "David Blevins (Closed) (JIRA)" <ji...@apache.org> on 2012/01/23 12:10:58 UTC

[jira] [Closed] (TOMEE-36) NullPointerException when Missing required persistence.xml for @PersistenceUnit

     [ https://issues.apache.org/jira/browse/TOMEE-36?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Blevins closed TOMEE-36.
------------------------------

    Resolution: Fixed
    
> NullPointerException when Missing required persistence.xml for @PersistenceUnit
> -------------------------------------------------------------------------------
>
>                 Key: TOMEE-36
>                 URL: https://issues.apache.org/jira/browse/TOMEE-36
>             Project: TomEE
>          Issue Type: Bug
>    Affects Versions: 1.0.0-beta-1
>            Reporter: Jacek Laskowski
>             Fix For: 1.0.0-beta-2
>
>
> Given the servlet:
> {code:title=PersistenceUnitServlet.java|borderStyle=solid}
> package pl.japila.tomee;
> import java.io.IOException;
> import java.io.PrintWriter;
> import javax.persistence.EntityManagerFactory;
> import javax.persistence.PersistenceUnit;
> import javax.servlet.ServletException;
> import javax.servlet.annotation.WebServlet;
> import javax.servlet.http.HttpServlet;
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> @WebServlet(name = "PersistenceUnitServlet", urlPatterns = {"/PersistenceUnitServlet"})
> public class PersistenceUnitServlet extends HttpServlet {
>     @PersistenceUnit(unitName="mysql")
>     private EntityManagerFactory emf;
>     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
>             throws ServletException, IOException {
>         response.setContentType("text/html;charset=UTF-8");
>         PrintWriter out = response.getWriter();
>         try {
>             out.println("<h1>Witaj</h1>");
>         } finally {
>             out.close();
>         }
>     }
>     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
>     /** 
>      * Handles the HTTP <code>GET</code> method.
>      * @param request servlet request
>      * @param response servlet response
>      * @throws ServletException if a servlet-specific error occurs
>      * @throws IOException if an I/O error occurs
>      */
>     @Override
>     protected void doGet(HttpServletRequest request, HttpServletResponse response)
>             throws ServletException, IOException {
>         processRequest(request, response);
>     }
>     /** 
>      * Handles the HTTP <code>POST</code> method.
>      * @param request servlet request
>      * @param response servlet response
>      * @throws ServletException if a servlet-specific error occurs
>      * @throws IOException if an I/O error occurs
>      */
>     @Override
>     protected void doPost(HttpServletRequest request, HttpServletResponse response)
>             throws ServletException, IOException {
>         processRequest(request, response);
>     }
>     /** 
>      * Returns a short description of the servlet.
>      * @return a String containing servlet description
>      */
>     @Override
>     public String getServletInfo() {
>         return "Short description";
>     }// </editor-fold>
> }
> {code}
> Upon executing it, Tomcat/TomEE reports NPE in catalina.2011-10-14.log:
> {noformat}
> Oct 14, 2011 8:10:44 PM org.apache.coyote.http11.Http11Processor process
> SEVERE: Error processing request
> java.lang.NullPointerException
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:133)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:680)
> {noformat}
> which is because OpenEJB/TomEE reported ValidationFailedException in openejb.log:
> {noformat}
> 2011-10-14 20:10:43,500 - ERROR - faces config file is null
> 2011-10-14 20:10:43,746 - INFO  - Configuring enterprise application: /Users/jacek/NetBeansProjects/PersistenceUnitWebApp/build/web
> 2011-10-14 20:10:43,901 - ERROR - FAIL ... PersistenceUnitWebApp:	Missing required persistence.xml for @PersistenceUnit ref "emf" to unit "mysql"
> 2011-10-14 20:10:43,901 - ERROR - Invalid WebModule(name=localhost/PersistenceUnitWebApp, path=/Users/jacek/NetBeansProjects/PersistenceUnitWebApp/build/web)
> 2011-10-14 20:10:43,901 - INFO  - Set the 'openejb.validation.output.level' system property to VERBOSE for increased validation details.
> 2011-10-14 20:10:43,902 - ERROR - Unable to deploy collapsed ear in war /PersistenceUnitWebApp: Exception: Module failed validation. AppModule(name=web)
> org.apache.openejb.config.ValidationFailedException: Module failed validation. AppModule(name=web)
> 	at org.apache.openejb.config.ReportValidationResults.deploy(ReportValidationResults.java:82)
> 	at org.apache.openejb.config.AppInfoBuilder.build(AppInfoBuilder.java:266)
> 	at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:695)
> 	at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:437)
> 	at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:394)
> 	at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:117)
> 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> 	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> 	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
> 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
> 	at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3854)
> 	at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:949)
> 	at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:360)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
> 	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
> 	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
> 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:680)
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira