轉載自: http://www.cnblogs.com/chenxueling/p/5474717.html
將20170331-JavaEE-SSH項目復制一份,重命名為20170407-JavaEE-SSH。
運行20170407-JavaEE-SSH項目里的jsp,結果報錯如下:
嚴重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/20170331-JavaEE-SSH]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:587)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1798)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@524abdbf]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 10 more
Caused by: java.lang.IllegalArgumentException: The main resource set specified [E:\apache-tomcat-8.0.37\webapps\20170331-JavaEE-SSH] is not valid
at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:727)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:688)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 13 more
頁面信息如下:
可以看到復制之后的項目的運行路徑仍然是之前的那個項目。
解決辦法:
第一步,單擊新的項目,右鍵-->properties-->Web Project Settings-->Context root,改成目標名稱。
第二步:通過以上方式修改完畢后,運行項目,會發現地址欄中仍是老項目名,這時需通過以下設置去改變:
進入工程的workspace,打開.settting文件夾,用記事本打開org.eclipse.wst.common.component文件,將該文件的三處改成目標名稱:
第三步:在Servers目錄下的Tomcat..config目錄下找到server.xml,找到Context節點,將docBase,path的項目名都修改成目標名:
至此,修改工作完畢,但還是請你耐心看完接下來的“特別說明”吧,因為如果你此時直接運行項目十之八九會有“彩蛋”:
當你重新發布項目時,會發現根本發布不了,出現以下錯誤:
Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server at localhost-config. The configuration may be corrupt or incomplete. |
特別說明:
針對你所遇到的“彩蛋”,解決方式很簡單,即刪除當前的Servers,刷新當前項目,然后發布即可。