在eclipse中启动tomcat加载不了项目的解决方法
一、在server视图右键选择Add and Remove时,如果想要部署的项目不在左侧的待选列表中,或是弹出警告There are no resources that can be added or removed from the server.。那么首先检查想要部署的项目是否open。如果没有,open project之后再试试。
二、若还是不行,则右键项目-->properties-->Projects Facets把下图的三个勾给打上。点击确定等待重新编译,编译完成且未出现警告的话,再重新试试.选择Dynamic Web Module的版本时,应根据dynamic web module和对应的TOMCAT 版本来设定。如果刚开始时候设置错了,则修改。
三、这时,如果项目未包含有WebContent文件夹,那么eclipse会自动创建WebContent文件夹,并将WebContent文件夹作为默认的读取lib以及jsp的路径,这时problems视图里会出一大堆错,因为编译器找不到lib包了。下图中的Web App Libraies就是从WebContent文件夹中加载的。
这时你有两个选择,第一个是把你的jsp和lib全部移动到WebContent文件夹中来,使得编译器能找到(如果是自己一个人的项目可以这么做,如果是多人协作的svn项目不推荐这么做)。第二个选择是重新配置部署路径,右键工程properties-->Deployment Assembly,remove掉/WebContent,然后add你自己的文件夹。比如我的项目放置lib和jsp以及各种资源的文件夹是web,那么add Folder 选择web,点击finish即可。如下图:
需要注意的是,即使第三步编译不报错,启动tomcat时也不一定能加载得到项目。因为有些项目的jar包可能不是从Web App Libraies里加载的,而是直接通过Add External JARS来加载的。这时候eclipse编译是没问题了,但tomcat加载时依然加载不到jsp以及lib、WEB_INF等等资源文件。因为tomcat启动时仍然是根据Deployment Assembly来寻找jsp以及lib、WEB_INF等等资源文件的。如果找不到,tomcat启动是正常的,但是你想要部署的项目不会被部署到tomcat上。
四:启动tomcat,如果能在浏览器中访问应用则说明加载成功。如果不能,则去看看有tomcat加载文件时有哪些文件漏掉了?如下图:
或者打开D:\eclipseWorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp4\conf\server.xml,查看<Context>标签下的路径,在我的电脑中打开此路径。
如果能在打开的文件夹中看到文件和ecplise中的一一对应,那么就说明加载成功了。左图中的WEB_INF文件夹里应包含classes文件夹,并且内容和右图中的build下的classes里的一致。(因为我的eclipse编译路径设为ccegp/build/classes,不是ccegp/web/WEB_INF/classes)
如果不是一一对应,重新启动一下tomcat,留意一下控制台输出。再不行可能得重启一下eclipse。因为有些时候配置不是立刻生效的。
参考:http://stackoverflow.com/questions/75786/eclipse-how-can-i-change-a-project-facet-from-tomcat-6-to-tomcat-5-5
在eclipse中启动tomcat加载不了项目的解决方法的更多相关文章
- Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法
tomcat启动的时候出现这种错误一般是项目引用了太多的jar包,或者反射生成了太多的类,或者有太多的常量池,导致非堆内存中永久保存区域不够,就有可能会报java.lang.OutOfMemoryEr ...
- eclipse中启动tomcat,localhost:8080无法访问
问题 eclipse中启动tomcat,项目可以正常运行,但是localhost:8080无法访问. 关闭eclipse中的Tomact,直接从tomcat/bin 下的startup.bat启动,l ...
- 在eclipse中启动Tomcat报端口被占用的错误
安装配置好Tomcat之后,在浏览器中输入localhost,能正取打开页面.然后在eclipse中建立项目,创建Servlet之后,启动Tomcat,报端口被占用的错误.如图: 原因:原来已经启动了 ...
- ivy在eclipse中的重新加载
ivy在eclipse中的重新加载 如果由于网速的原因,导致了ivy没有正常的加载,可以进行ivy的重新加载: 1,右键点击项目,选择属性->Java Build Path->Librat ...
- eclipse中启动tomcat后, 无法访问localhost:8080
问题: 今天老师讲了Servlet路径问题, 做了个测试在eclipse中启动tomcat后,在浏览器地址栏输入 http://localhost8080无法访问, 提示404错误, 正常情况是可以访 ...
- springboot+thymeleaf刨坑——首页加载js/css等失败解决方法
在使用thymeleaf加载css或js样式,当我们进入登录页的时候发现,所有的样式都是加载失败的.原因是在新版中有这样一个坑……: 当我们设置了addInterceptors-注册拦截器的时候,通常 ...
- Eclipse中启动tomcat报错:A child container failed during start
我真的很崩溃,先是workspace崩了,费了好久重建的workspace,然后建立了一个小demo项目,tomcat中启动却报错,挑选其中比较重要的2条信息如下: A child container ...
- 为什么eclipse中启动tomcat后,浏览器中出现404?
问题描述: tomcat压缩包加压后,启动lib文件夹下面的startup.bat,在浏览器中输入http://localhost:8080/后出现熟悉的界面. 但是在eclipse中,jsp可以正常 ...
- eclipse中启动tomcat
0.以下即使部署好,点小猫启动tomcat,有一个问题,修改jsp文件,本地tomcat中的此jsp并没有修改,如果右键项目启动,则会修改,不知道为什么 1. 首先发布项目,项目右键,run serv ...
随机推荐
- 真机调试时遇到“Could not launch *** process launch failed: Security”的解决办法
半年没写ios程序了,打算重新将这块技术捡回来.谁知道写的第一个测试程序在真机上就跑出来因为安全问题不能加载的情况. ios的版本是9.2的.看提示信息是app的启动被ios的安全机制阻挡了. 在手机 ...
- IComparable<T> Vs. IComparer<T> System.Comparison<T>
Well they are not quite the same thing as IComparer<T> is implemented on a type that is capabl ...
- GDB 调试 一些命令
1. gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式 x/ (n,f,u为可选参数)n: 需要显示的内存单元个数,也就是从 ...
- win7、linux安装使用pip、mitmproxy
安装pip https://pip.pypa.io/en/latest/installing.html 步骤: 下载 https://bootstrap.pypa.io/get-pip.py pyth ...
- android的四层体系结构,基于mvc三层结构浅析
从多方面理解Android体系结构 1.以分层的方式来看Android 安卓体系结构分为四层. 首先看一下官方关于Android体系结构的图: 1).Linux Kernel:负责硬件的驱动程序.网络 ...
- Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)
1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...
- Ubuntu12.04安装到U盘里
把linux安装到U盘里,随时随地使用自己的系统show一下不仅用起来顺手而且很方便携带.看了一些关于安装Ubuntu到U盘的资料,自己试着折腾了几次,并且成功安装了.花时间更新要保证系统是最新的就要 ...
- 封装tip控件
在界面上有时需要显示一个提示,大多的前端框架都把提示做成一个带有小尖角的提示框,因此自己也仿照了实现了一下,效果图如下: 尖角的实现很简单的,一般都是通过css将div的宽高设置为0,然后将尖角朝向的 ...
- ExpressJs server中Router的设置
expressjs的路由设置方法 一.基本方法: app.METHOD(PATH, HANDLER)把路径path和操作方法method(可以是http的get/put/delete等),映射到一个处 ...
- c++学习--面向对象一实验
实验内容 一 建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度.用类cylinder计算圆柱体的体积,并存储在一个double变量中.在类cyl ...