tomcat部署诡异报错

tomcat部署诡异报错

之前config那章还没问题,然后照着写完这一章的代码,出现了以下问题:

Connected to server

[2018-08-03 06:50:22,616] Artifact SystemDemo:war exploded: Artifact is being deployed, please wait...

03-Aug-2018 18:50:22.849 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 

 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SystemDemo]]

at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:441)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:742)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:718)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)

at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1737)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)

at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)

at sun.rmi.transport.Transport$1.run(Transport.java:200)

at sun.rmi.transport.Transport$1.run(Transport.java:197)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:196)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:835)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [denglu.do] in servlet mapping

at org.apache.catalina.core.StandardContext.addServletMappingDecoded(StandardContext.java:3136)

at org.apache.catalina.Context.addServletMappingDecoded(Context.java:879)

at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1376)

at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1187)

at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)

at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)

at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5007)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

... 42 more

03-Aug-2018 18:50:22.851 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method manageApp

 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SystemDemo]]

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:746)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:718)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)

at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1737)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)

at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)

at sun.rmi.transport.Transport$1.run(Transport.java:200)

at sun.rmi.transport.Transport$1.run(Transport.java:197)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:196)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:835)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

03-Aug-2018 18:50:22.852 严重 [RMI TCP Connection(2)-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:295)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)

at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)

at sun.rmi.transport.Transport$1.run(Transport.java:200)

at sun.rmi.transport.Transport$1.run(Transport.java:197)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:196)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:835)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SystemDemo]]

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:746)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:718)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)

at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1737)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)

... 33 more

[2018-08-03 06:50:22,859] Artifact SystemDemo:war exploded: Error during artifact deployment. See server log for details.

03-Aug-2018 18:50:32.398 信息 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/Applications/apache-tomcat-9.0.10/webapps/manager]

03-Aug-2018 18:50:32.477 信息 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/Applications/apache-tomcat-9.0.10/webapps/manager] has finished in [79] ms


我用的是IDEA,请问这是什么问题?

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

同学把配置文件改为下面这个后再试下~

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>imooc-jsp</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>logon</servlet-name>
		<jsp-file>/logon.jsp</jsp-file>
		<init-param>
			<param-name>age</param-name>
			<param-value>100</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>logon</servlet-name>
		<url-pattern>/denglu.do</url-pattern>
	</servlet-mapping>
</web-app>

另外,同学运行存在问题的项目,其目录结构是不正确的,lib文件夹和classes文件夹应该都是存在于WEB-INF目录下的,同学如果运行还有问题,建议先把目录结构调整正确。

祝学习愉快!

  • 风岚醉 提问者 #1
    最后还是感觉工程出了什么问题,新建一个工程重写代码没什么问题了,就这样吧,还是多谢各位老师一周一直跟进我的问题。
    2018-08-13 14:05:26
一叶知秋519 2018-08-12 10:01:12

同学你好,看你上面贴出来的内容目录,classes文件夹应该是在WEB-INF目录下的,建议同学把classes文件夹移动到WEB-INF目录下再试下~如果还有问题,建议同学把你的web.xml贴一下,方便我们帮助你盘查解决问题;设立问答区的好处就是方便老师追踪同学的问题,如果发邮箱可能会出现遗漏情况呢~ 因此同学如果还有有问题的话,可以将关键的配置文件web.xml贴出来,我们帮助你分析解决。祝学习愉快!

  • 提问者 风岚醉 #1
    其实第一张图的工程是我后来建的,没有问题了(当然这里的代码跳掉了中间的几节课),就是我一开始按照视频里一步步写下来的第一个工程出了问题。 这个工程的web.xml是: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>login</servlet-name> <jsp-file>/login.jsp</jsp-file> <init-param> <param-name>age</param-name> <param-value>100</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>denglu.do</url-pattern> </servlet-mapping> </web-app> 其实也是照着视频写的。
    2018-08-12 13:30:06
提问者 风岚醉 2018-08-10 18:21:53

现在是这样:

我重新把代码写了一遍,运行没问题了,没有报错。

http://img1.sycdn.imooc.com//climg/5b6d66c30001906307840888.jpg


我之前出问题的时候,项目除了示例代码以外,自己也加上了作业代码,结果出现了问题。

http://img1.sycdn.imooc.com//climg/5b6d66ca0001ee3408100968.jpg


这是什么原因?要我帖代码倒可以但是这么多文件,不能直接上传附件吗?


  • 不能上传附件的,如果同学找不到错误原因,可以新建一个问答,并把代码粘贴上来,注意贴jsp代码的时候要标注页面的名称,方便老师为你调试,并帮助你解答问题,祝学习愉快~
    2018-08-10 18:54:01
  • 提问者 风岚醉 回复 chrismorgen #2
    要不发你邮箱?贴出来一堆阅读体验也不好。
    2018-08-10 19:09:56
好帮手慕珊 2018-08-05 11:12:42

贴一下web.xml文件,看看是否配置有问题,另外也可以把你的代码都贴出来,我们运行看看是代码本身的问题,还是环境问题。你也可以重新建一个web工程,只有一个jsp文件,看看是否还会发生类似的问题。祝学习愉快!

  • 提问者 风岚醉 #1
    我又看了下,加入4-5这一章的代码之前都是没有问题的,正常部署正常运行。但是我就在源代码上加了new throw();,errorpage,新建了error.jsp,就不能运行了,是不是idea做错误处理需要额外的配置?
    2018-08-05 12:47:15
  • 一叶知秋519 回复 提问者 风岚醉 #2
    同学去掉error.jsp页面以后是可以正常运行的? 建议同学把你的代码贴一下,我们运行试一下~
    2018-08-06 09:54:14
提问者 风岚醉 2018-08-03 19:06:46

还有,我后来把新加的error页面删了,新代码注释了,还是在部署上出了问题。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java Web基础入门2018版
  • 参与学习       716    人
  • 提交作业       185    份
  • 解答问题       1363    个

会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师