今天我用了近一天的時間研究一個錯誤,早上寫代碼是遇到一個 錯誤嚴重錯誤碼如下:
嚴重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/201110181]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1055)at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:978)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.startup.Catalina.start(Catalina.java:621)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name fDemoServletat org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3151)at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3130)at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1301)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1390)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)... 29 more2011-10-18 15:21:19 org.apache.catalina.startup.HostConfig deployDirectory嚴重: Error deploying web application directory 201110181java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/201110181]]at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:816)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1055)at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:978)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)at org.apache.catalina.startup.Catalina.start(Catalina.java:621)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
錯誤分別是 :
org.apache.catalina.LifecycleException:
java.lang.IllegalArgumentException:
java.lang.IllegalStateException:
這三個錯誤原來見過,但是沒有記住,今天讓這三個錯誤糾結了我一天 現在我將錯誤的產生的原因給大家做個總結
現在正在學習 Servlet 我建立了三個檔案 第一個檔案Java檔案
通過 New ----> Servlet 建立的 DemoServlet.java
package cn.cdn.web.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DemoServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/*設定編碼*/request.setCharacterEncoding("UTF-8");System.out.println("==========-----------=============");}}
然後產生的 xml :web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>DemoServlet</servlet-name> <servlet-class>cn.cdn.web.servlet.DemoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DemoServlet</servlet-name>//如果這裡的名字定義錯誤 就會出現上面的錯誤! <url-pattern>/demo.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
原因很簡單,就是名字他找不到,所以就會報錯,至於怎麼解釋我不清楚總之如果遇到這個錯誤大家就去這個地方找就行了
web.xml 中的 <servlet-name>DemoServlet</servlet-name>
<url-pattern>/demo.do</url-pattern>
看看是不是能解決!
==============================================================
需要協助請加QQ:284651035 (本博主)
博主微博:http://weibo.com/cnbailu (白璐同學)
http://weibo.com/u/2717396075(美女笑話精選)
陳老師微博:http://weibo.com/redarmychen Java 方向
李老師微博:http://weibo.com/csdnliwei PHP方向
移動(手機)軟體開發交流群: 57636364 (申請請註明:是在CSDN部落格看到的,進入群後記得改名片)謝謝!