好久没有写文章了,今天在Eclipse中使用Tomcat发布Web项目时遇到些问题,在这里列出来,希望对大家有所帮助,避免踩坑;当然,踩过坑的童鞋可以跳过。
通过Eclipse发布Web项目需要以下几步:
1、在eclipse里关联本地下载的tomcat.
Window - Preference -Server - Runtime Environments - Add ,指定tomcat的安装路径,如:
D:\Program Files\xampp\tomcat ,和jre:我这里使用的是tomcat7和jdk1.7
2、File - New - Other - 输入server,选定server,创建一个server.
Window - Show View - Other - servers 打开服务器试图,可看到自己新建的server.
3、File - New - Dynamic Web Project,创建一个web项目,下一步,输入项目名,创建。
当然,如果有现成的项目可以直接导入进来。
如上,eclipse会创建一个如上图目录结构的项目。在WebContent路径下新建index.jsp(或者已经有)
4、双击第二步建立好的server:
点击Modules - Add External Web Module(这一步很重要,指定WebContent路径,如果是直接添加项目的话,会不包含WebContent内容):
点击Browse 浏览指定到你工作空间中项目的WebContent目录(该目录也可以在新建项目时自己定制),如:D:\CodeCenter\JavaProjects\crm_28\WebContent
并设置项目的访问路径,如设置为/crm_28.
PS:在这里我还遇到一个坑,就是我的编译输出路径配置在的根目录下的build目录中,需要声明一点,Web项目的编译输出路径需要修改到WebContent\WEB-INF\classes下,因为添加WebModule的时候只能指定一个WebContent的路径。不然启动Server会报找不到src下的文件,如:
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:609)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:510)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
5、保存以上,并启动tomcat,访问。
6、在浏览器中输入127.0.0.1:8080即可看到欢迎界面