war 部署时出现 Tomcat 错误 - 上下文路径/示例中的应用程序无法启动

标签 tomcat

我在 Cpanel (WHM) 的 Tomcat 中部署 WAR 文件时遇到以下错误。我收到以下错误……有什么帮助吗?

catalina.out 的日志文件

    [11491] net].[/sample] Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsControllerClass
            at java.security.AccessController.doPrivileged(Native Method)
            at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
            at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
            at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1173)
            at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:550)
            at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
            at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.Defau                    ltGrailsControllerClass
            ... 21 more
    Caused by: java.lang.reflect.InvocationTargetException
            ... 21 more
    Caused by: org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [PhysicalAbilityCon                    troller]!
            ... 21 more
    Caused by: java.lang.OutOfMemoryError: PermGen space
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
            at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1960)
            at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:933)
            at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1405)
            at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
            at PhysicalAbilityController.<init>(PhysicalAbilityController.groovy)

这是catalina.err的报错如下; catalina.err的日志文件

         Jul 10, 2012 2:09:03 AM org.apache.catalina.core.ApplicationContext log
            INFO: HTMLManager: start: Starting web application at '/sample'
            Jul 10, 2012 2:09:04 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
            INFO: validateJarFile(/usr/local/jakarta/apache-tomcat-5.5.35/work/Catalina/sample.net/sample/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
            Jul 10, 2012 2:09:05 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
            INFO: validateJarFile(/usr/local/jakarta/apache-tomcat-5.5.35/work/Catalina/sample.net/sample/WEB-INF/lib/jsp-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/jsp/JspPage.class
            Jul 10, 2012 2:09:16 AM org.apache.catalina.core.StandardContext start
            SEVERE: Error listenerStart
            Jul 10, 2012 2:09:16 AM org.apache.catalina.core.StandardContext start
            SEVERE: Context [/sample] startup failed due to previous errors

最佳答案

Caused by: java.lang.OutOfMemoryError: PermGen space

您没有足够的 PermGen 内存,这在使用 Tomcat + Groovy 时很常见。将此添加到您的启动脚本/JVM 选项:

-XX:PermSize=150M

如果问题仍然存在,请使用更大的值。您可以在catalina.sh/catalina.bat中设置这个值,搜索JAVA_OPTS变量。

关于war 部署时出现 Tomcat 错误 - 上下文路径/示例中的应用程序无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402929/

相关文章:

java - 失败 - 在 tomcat7 : War file "WhitePagesAddressLookup.war" cannot be uploaded if context is defined in server. xml 中出现错误

java - 如何配置 Tomcat 使 Java Jersey 作为 Web 应用程序在不同的端口上运行

java - 在正在运行的 java 程序的后台执行 jsp 程序

java - 如何为不在 web-apps 文件夹中的 Apache Tomcat 设置上下文

java - war 部署到 webapp 但创建的目录没有内容

Java 库文件错误

java - Spring 启动错误 : java. lang.NoSuchMethodError : org. apache.tomcat.util.scan.StandardJarScanner.setJarScanFilter

eclipse - 从 Eclipse 启动时,Tomcat 会忽略 logging.properties

tomcat - 如何从 Nexus 组件中获取文件?

Java Servlet 文件上传错误