【Servlet】解决org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method……
錯誤情況
遇到Tomcat服務(wù)器啟動報錯信息如下所示:
org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method [manageApp]
java.lang.IllegalStateException: Error starting child
?at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:716)
?at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
?at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
?at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1728)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?at java.base/java.lang.reflect.Method.invoke(Method.java:566)
?at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
?at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
?at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
?at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:457)
?at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:406)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?at java.base/java.lang.reflect.Method.invoke(Method.java:566)
?at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
?at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
?at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
?at java.management/com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)
?at java.base/java.security.AccessController.doPrivileged(Native Method)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?at java.base/java.lang.reflect.Method.invoke(Method.java:566)
?at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
?at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
?at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
?at java.base/java.security.AccessController.doPrivileged(Native Method)
?at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
?at java.base/java.security.AccessController.doPrivileged(Native Method)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
?at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
?at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
?at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/web]]
?at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
?at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
?at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
?… 42 more
Caused by: java.lang.IllegalArgumentException: Invalid [SetCookieServlet] in servlet mapping
?at org.apache.catalina.core.StandardContext.addServletMappingDecoded(StandardContext.java:3175)
?at org.apache.catalina.Context.addServletMappingDecoded(Context.java:881)
?at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1385)
?at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1162)
?at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
?at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
?at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
?at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5048)
?at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
?… 43 more
17-May-2020 15:59:11.577 嚴重 [RMI TCP Connection(3)-127.0.0.1]
org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method [createStandardContext]
javax.management.RuntimeOperationsException: Exception invoking method [manageApp]
?at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:298)
?at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
?at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
?at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:457)
?at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:406)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?at java.base/java.lang.reflect.Method.invoke(Method.java:566)
?at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
?at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
?at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
?at java.management/com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)
?at java.base/java.security.AccessController.doPrivileged(Native Method)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406)
?at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?at java.base/java.lang.reflect.Method.invoke(Method.java:566)
?at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
?at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
?at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
?at java.base/java.security.AccessController.doPrivileged(Native Method)
?at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
[2020-05-17 03:59:11,609] Artifact java_web_normal_training:war exploded: Error during artifact deployment. See server log for details.
?at java.base/java.security.AccessController.doPrivileged(Native Method)
?at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
?at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
?at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
?at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalStateException: Error starting child
?at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:716)
?at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
?at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
?at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1728)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?at java.base/java.lang.reflect.Method.invoke(Method.java:566)
?at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
?… 34 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/web]]
?at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
?at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
?at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
?… 42 more
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [SetCookieServlet] in servlet mapping
?at org.apache.catalina.core.StandardContext.addServletMappingDecoded(StandardContext.java:3175)
?at org.apache.catalina.Context.addServletMappingDecoded(Context.java:881)
?at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1385)
?at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1162)
?at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
?at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
?at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
?at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5048)
?at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
?… 43 more
發(fā)現(xiàn)問題出在<servlet-mapping>下的<url-pattern>,那就去看看:
錯因是沒加/,失誤了。
完整代碼
import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;public class SetCookieServlet extends HttpServlet {@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 創(chuàng)建CookieCookie cookie1 = new Cookie("info1", "hello1");Cookie cookie2 = new Cookie("info2", "hello2");Cookie cookie3 = new Cookie("info3", "hello3");// 設(shè)置cookie有效時間cookie1.setMaxAge(10);cookie2.setMaxAge(20);// 存cookieresponse.addCookie(cookie1);response.addCookie(cookie2);response.addCookie(cookie3);// 重定向response.sendRedirect("GetCookieServlet");}} import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;public class GetCookieServlet extends HttpServlet {@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();//獲取CookieCookie[] cookies = request.getCookies();if (cookies != null) {for (Cookie c : cookies) {String name = c.getName();String value = c.getValue();writer.println(name + " " + value + "<br/>");}}}}運行結(jié)果
瀏覽器地址欄輸入:localhost:888/web/SetCookieServlet,可見:
過10秒刷新:
過10秒刷新:
總結(jié)
以上是生活随笔為你收集整理的【Servlet】解决org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method……的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据库系统】SQL视图与表的区别和联系
- 下一篇: 【JSON】JSON入门详解(二)