Java中出現(xiàn)java.lang.IllegalStateException異常錯(cuò)誤的解決
java.lang.IllegalStateException異常錯(cuò)誤的解決
今天運(yùn)行項(xiàng)目時(shí)出現(xiàn)的這個(gè)問題

有錯(cuò)誤提示可以看出,大概意思是這個(gè)項(xiàng)目已經(jīng)停止,不能重新加載。也就是說只需重新部署基本就可以啦
網(wǎng)上有人說可以將項(xiàng)目從tomcat中先移除再部署上去,實(shí)在不行就把myeclipse中所有項(xiàng)目都清空一下,再從新部署上去,嘿嘿嘿
總之,可以確定這個(gè)問題不是代碼造成的問題,應(yīng)該是部署出了問題,將整個(gè)項(xiàng)目中心部署一下。tomcat重新啟動(dòng)一下。
java.lang.IllegalStateException: 啟動(dòng)子級時(shí)出錯(cuò)
1、情況一:@WebServlet 的配置問題
1.1、錯(cuò)誤警告查看
你可以頁面搜索一些關(guān)鍵字,看下有沒有相同的異常提示/警告
18-Jan-2022 08:57:20.774 嚴(yán)重 [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 調(diào)用方法[manageApp]時(shí)發(fā)生異常
java.lang.IllegalStateException: 啟動(dòng)子級時(shí)出錯(cuò)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1822)
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:293)
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:428)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:376)
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:293)
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: 無法啟動(dòng)組件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/my]]
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:726)
... 42 more
Caused by: java.lang.IllegalArgumentException: servlet映射中的<url pattern>[mytest1]無效
at org.apache.catalina.core.StandardContext.addServletMappingDecoded(StandardContext.java:3261)
at org.apache.catalina.Context.addServletMappingDecoded(Context.java:905)
at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1562)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1329)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:986)
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:5068)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 43 more
18-Jan-2022 08:57:20.778 嚴(yán)重 [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 調(diào)用方法[createStandardContext]時(shí)發(fā)生異常
javax.management.RuntimeOperationsException: 調(diào)用方法[manageApp]時(shí)發(fā)生異常
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:303)
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:428)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:376)
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:293)
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: java.lang.IllegalStateException: 啟動(dòng)子級時(shí)出錯(cuò)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1822)
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:293)
... 34 more
Caused by: org.apache.catalina.LifecycleException: 無法啟動(dòng)組件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/my]]
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:726)
... 42 more
Caused by: java.lang.IllegalArgumentException: servlet映射中的<url pattern>[mytest1]無效
at org.apache.catalina.core.StandardContext.addServletMappingDecoded(StandardContext.java:3261)
at org.apache.catalina.Context.addServletMappingDecoded(Context.java:905)
at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1562)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1329)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:986)
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:5068)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 43 more
[2022-01-18 08:57:20,800] 工件 untitled1:war exploded: 部署工件時(shí)出錯(cuò)。請參閱服務(wù)器日志了解詳細(xì)信息。
18-Jan-2022 08:57:30.198 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 應(yīng)用程序部署到目錄 [D:\softwore\Tomcat\apache-tomcat-10.1.0-M8\webapps\manager]
18-Jan-2022 08:57:30.614 警告 [Catalina-utility-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]創(chuàng)建會話ID生成的SecureRandom實(shí)例花費(fèi)了[310]毫秒。
18-Jan-2022 08:57:30.650 信息 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Web應(yīng)用程序目錄[D:\softwore\Tomcat\apache-tomcat-10.1.0-M8\webapps\manager]的部署已在[453]毫秒內(nèi)完成
1.2、詳解
前提:
- 這一天我在測試剛學(xué)的東西,昨天服務(wù)器運(yùn)行正常,今天剛剛寫點(diǎn)測試就報(bào)錯(cuò)
- ?因?yàn)椴恢朗遣皇亲蛱煸噲D讓別人訪問我的服務(wù)器,修改了servlet.xml(**我用的是Tomcat**)
- 所以我第一時(shí)間去看了對應(yīng)文檔
行動(dòng):
- servlet.xml 發(fā)現(xiàn)無誤,所以只能查看錯(cuò)誤警告:從上到下粗略查看
- 發(fā)現(xiàn)關(guān)鍵字**<url pattern>[mytest1]**無效,應(yīng)該是映射出現(xiàn)了問題
- (前面有提示服務(wù)器正常啟動(dòng),但后面部署工程出現(xiàn)錯(cuò)誤)
原因:
- 寫映射的時(shí)候遺漏了 “ **/** ” ,如圖:
- 有綠色波浪線,但是沒有飄紅,而且也只是提示拼寫錯(cuò)誤,更換一個(gè)字符串而已,所以我沒有多想
更改前:

更改后:仍然提示:

2、情況二:XML映射問題
- 異常情況和情況一相同,只是地點(diǎn)換了,錯(cuò)誤相同,不過多贅述
- 在寫XML映射標(biāo)簽的時(shí)候,也是漏了 ” / “
- hello -> /hello
正確形式:
<servlet-mapping>
<servlet-name>Mymap</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java.lang.IllegalStateException:方法有太多主體參數(shù)問題
- java.lang.IllegalStateException異常解決
- java.lang.IllegalStateException異常原因和解決辦法
- 解決tomcat出現(xiàn):java.lang.IllegalStateException:無輸出目錄問題
- Android異常 java.lang.IllegalStateException解決方法
- 解決報(bào)錯(cuò):java.lang.IllegalStateException: Failed to execute CommandLineRunner問題
相關(guān)文章
IDEA項(xiàng)目中配置Maven鏡像源(下載源)的詳細(xì)過程
Maven是一個(gè)能使我們的java程序開發(fā)節(jié)省時(shí)間和精力,是開發(fā)變得相對簡單,還能使開發(fā)規(guī)范化的工具,下面這篇文章主要給大家介紹了關(guān)于IDEA項(xiàng)目中配置Maven鏡像源(下載源)的詳細(xì)過程,需要的朋友可以參考下2024-02-02
在SpringBoot中實(shí)現(xiàn)一個(gè)訂單號生成系統(tǒng)的示例代碼
在Spring Boot中設(shè)計(jì)一個(gè)訂單號生成系統(tǒng),主要考慮到生成的訂單號需要滿足的幾個(gè)要求:唯一性、可擴(kuò)展性、以及可能的業(yè)務(wù)相關(guān)性,本文給大家介紹了幾種常見的解決方案及相應(yīng)的示例代碼,需要的朋友可以參考下2024-02-02
利用java實(shí)現(xiàn)中獎(jiǎng)概率詳情
這篇文章主要介紹了利用java實(shí)現(xiàn)中獎(jiǎng)概率詳情,根據(jù)概率將獎(jiǎng)品劃分區(qū)間,每個(gè)區(qū)間代表一個(gè)獎(jiǎng)品,然后抽取???隨機(jī)數(shù)??,反查落在那個(gè)區(qū)間上,即為所抽取的獎(jiǎng)品,需要的朋友可以參考一下2022-07-07
Java實(shí)戰(zhàn)之小米交易商城系統(tǒng)的實(shí)現(xiàn)
這篇文章將利用Java實(shí)現(xiàn)小米交易商城系統(tǒng),文中采用的技術(shù)有:JSP?、Spring、SpringMVC、MyBatis等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-04-04
Jboss Marshalling服務(wù)端無法接受消息
這篇文章主要介紹了Jboss Marshalling服務(wù)端無法接受消息,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Java版C語言版簡單使用靜態(tài)語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的方法
本文給大家分享java版和C語言版簡單使用靜態(tài)語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-10-10
解決ObjectMapper.convertValue() 遇到的一些問題
這篇文章主要介紹了解決ObjectMapper.convertValue() 遇到的一些問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringSecurity實(shí)現(xiàn)動(dòng)態(tài)權(quán)限校驗(yàn)的過程
Spring Security過濾器鏈中,AuthorizationFilter的authorizationManager是我們要找的組件,該組件的check方法已被棄用,推薦使用authorize方法,最終通過接口路徑和權(quán)限進(jìn)行校驗(yàn),本文給大家介紹SpringSecurity實(shí)現(xiàn)動(dòng)態(tài)權(quán)限校驗(yàn)的相關(guān)知識,感興趣的朋友一起看看吧2025-02-02

