日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错

發布時間:2024/4/13 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解決IntelliJ IDEA報錯:調用方法[manageApp]時發生異常java.lang.IllegalStateException: 啟動子級時出錯

問題描述:

??筆者將一個在 Tomcat 安裝目錄下的文件夾 webapps 部署成功且運行正常的 Web 應用,改成使用 IntelliJ IDEA 工程中的文件夾 webapp 來部署。這之中,筆者沒有改動原 Web 應用文件夾內的任何文件,但卻在 IntelliJ IDEA 中運行時直接 報錯1^11 。這之后,筆者改使用該工程來部署其它原來在此 IntelliJ IDEA 工程中部署成功的任何 Web 應用,此時均報與之前相同的 錯誤2^22 。

筆者報錯時的運行環境:

  • JDK 13.0.2

  • Maven 3.6.3

  • Tomcat 9.0.41(Servlet 4.0,JSP 2.3)

  • IntelliJ IDEA 2020.1.2 (Ultimate Edition)

??這個報錯的信息如下:

XX-XXX-202X XX:XX:XX.XXX 嚴重 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 調用方法[manageApp]時發生異常java.lang.IllegalStateException: 啟動子級時出錯at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1727)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:567)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)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:459)at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:408)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:567)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)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(AccessController.java:691)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:567)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(AccessController.java:691)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(AccessController.java:391)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:830)Caused by: org.apache.catalina.LifecycleException: 無法啟動組件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/XXX_war_exploded]]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:717)... 42 moreCaused by: java.lang.IllegalArgumentException: 找到多個名為XXX的片段。這是不合法的相對排序。有關詳細信息,請參閱Servlet規范的第8.2.2 2c節??紤]使用絕對排序。at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2260)at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2218)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1293)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:985)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5082)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)... 43 more XX-XXX-202X XX:XX:XX.XXX 嚴重 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 調用方法[createStandardContext]時發生異常javax.management.RuntimeOperationsException: 調用方法[manageApp]時發生異常at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)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:459)at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:408)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:567)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)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(AccessController.java:691)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:567)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(AccessController.java:691)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(AccessController.java:391)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) [202X-XX-XX XX:XX:XX.XX,XXX] Artifact XXX:war exploded: Error during artifact deployment. See server log for details.at java.base/java.lang.Thread.run(Thread.java:830)Caused by: java.lang.IllegalStateException: 啟動子級時出錯at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1727)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:567)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)... 34 moreCaused by: org.apache.catalina.LifecycleException: 無法啟動組件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/XXX_war_exploded]]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:717)... 42 moreCaused by: java.lang.IllegalArgumentException: 找到多個名為XXX的片段。這是不合法的相對排序。有關詳細信息,請參閱Servlet規范的第8.2.2 2c節??紤]使用絕對排序。at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2260)at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2218)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1293)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:985)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5082)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)... 43 more

??筆者在經過反復試驗排錯后,終于找到了根因。原來筆者在此 IntelliJ IDEA 工程中使用的是 Maven 來構建項目的,而 Maven 中已經有了設置依賴的方法——通過文件 pom.xml 來設置,但在 Web 應用中是通過在 Web 應用下的目錄 WEB-INF\lib 來設置的。如果同時設置了這兩者,這就導致沖突,從而引發上面的 報錯1^11 。同理,如果在 IntelliJ IDEA 中設置了 Sources Root(源代碼根目錄),然后又在文件夾 WEB-INF 下投入了目錄 classes,這同樣會導致沖突。因此,解決 報錯1^11 的方法就是:

  • 方法 1:只使用本方法構成項目的 Java 源文件、依賴(如果同時摻雜了其它方法,刪除之):

    • 源文件:選擇 Web 應用下的目錄 WEB-INF\classes 作為 Web 應用所需要的已編譯 Java 源文件目錄。

    • 依賴:選擇 Web 應用下的目錄 WEB-INF\lib 作為依賴的配置。

  • 方法 2:只使用本方法構成項目的 Java 源文件、依賴(如果同時摻雜了其它方法,刪除之):

    • 源文件:在 IntelliJ IDEA 中標記某一個文件夾作為 Java 源文件目錄。

    • 依賴:在下面的內容只選其一。

      • 選擇且只選擇一種項目構建工具管理依賴:(推薦)

        • Maven:在文件 pom.xml 中設置依賴

        • Gradle:在文件 build.gradle 中設置依賴

      • 使用 IntelliJ IDEA 原生的方法導入依賴(這種方法引入依賴弊端很多,不建議使用)。用這種方式導入依賴的方法,可見筆者的另一篇博客:

        Java 庫文件的添加教程:
        https://blog.csdn.net/wangpaiblog/article/details/111772193

      • 選擇 Web 應用下的目錄 WEB-INF\lib 作為依賴的配置。

??另外,在產生了 報錯1^11 之后,可能會破壞此 IntelliJ IDEA 工程的環境,導致以后即使運行配置正確的 Web 應用,也將一直發生相同的報錯,即上面的 錯誤2^22 。此時,可以在解決 報錯1^11 的問題之后,刪除此 IntelliJ IDEA 工程下,上一次編譯生成的文件夾(如 Maven 編譯產生的文件夾 target),然后重新編譯即可。

總結

以上是生活随笔為你收集整理的解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。