Eclipse开发Web常见异常
2016-05-06 10:10
573 查看
1、java.lang.IllegalStateException: Web app root system property already set to different value
错误原因:webAppRootKey是在java web项目的web.xml配置文件中表示项目的唯一标示,在Eclipse调试Web项目时,项目的路径是一个临时路径,不在真正的路径下,可以通过log4j日志的方式打印出属性值,来看看临时项目路径在哪里,可以用System.getProperty("web.sample.root");如果web.xm 内没有设置webAppRootKey项,是为默认设置,那么webAppRootKey就是缺省的"webapp.root"。
解决办法:两个web应用中定义了相同的webAppRootKey或者都没有定义,则现在就需要为每个web都定义一个webAppRootKey。
### app1:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>app1.root</param-value>
</context-param>
### app2:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>app2.root</param-value>
</context-param>
2、eclipse下修改项目名导致tomcat内发布名不一致
解决办法:右击项目->Properties->Web project settings->修改Context root中内容。
3、无法正常启动tomcat 严重: A child container failed。。。Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
错误原因:一般情况下,通过Caused by后面的描述可知,导致出错的原因,但是实际有些错误并不是这样。这个错误通过“Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext”,以为是缺少spring中的lib包,但是并不缺少包。
解决办法:删除原有tomcat server,重新部署项目。
4、Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
错误原因:PermGen space是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的Class在被Loader时就会被放到PermGen space中它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果应用中有很多CLASS就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候如果你的WEB APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息。
解决办法:
a、手动设置MaxPermSize大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/catalina.bat,
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:set JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m;
b、修改eclipse.ini文件,修改如下:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx512m
-XX:PermSize=64M
-XX:MaxPermSize=128M
c、修改eclipse中tomcat内存大小
windows=>preferences=>java=>installed jres=>选中并编辑=>设置Default VM arguments:-Xms512M -Xmx1024M -XX:MaxPermSize=512m
5、Eclipse启动Tomcat异常:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already
解决办法:
a、一般情况下,打开任务管理器,结束"javaw.exe"这个进程。
b、找出哪个端口被占用:命令提示符下,输入netstat -aon | findstr 8080-->找出端口被哪个进程占用:tasklist |findstr 7742(假设此时PID为7742)-->结束进程:taskkill -F -IM javaw.exe或taskkill /pid 7742 /F(假设此时进程名为javaw.exe)。
6、JSP页面提示“Multiple annotations found at this line: - javax.servlet.jsp.PageContext cannot be resolved to a type”异常
解决办法:window=>preferences=>server=>runtime environments=>选择运行环境(这里Apache Tomcat v7.0)=>next=>browser=>选择服务器安装路径,jre环境。
7、导入项目报“xxx cannot be resolved to a type”异常
解决办法:
1)右击项目=>Build Path=>Configure Build Path=>Libraries=>检查jdk版本;
2)右键项目=>Properties=>Resource=>配置编码为UTF-8
8、Project Facts修改Dynamic web module时报“Cannot change version of project facet Dynamic web module to 2.5”异常
解决办法:取消Dynamic web module选项=>Apply=>选择2.5;如果还不能,再参考文章http://blog.csdn.net/steveguoshao/article/details/38414145
9、右键项目Properties,找不到“Deployment Assembly”
解决办法:参考文章http://josh-persistence.iteye.com/blog/1926808
10、运行项目报“java.lang.IllegalArgumentException: Document base XX\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XX does not exist or is not a readable directory"异常,clean项目也无法发布到”XX\tmp0\wtpwebapps\XX“目录。
解决办法:参考8和9。
11、eclipse启动tomcat服务报“log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: ..\jeecglogs\jeecg_log_.txt (拒绝访问。)”异常。
错误原因:权限不够。
解决办法:以管理员身份运行eclipse或者更改日志路径至非只读目录下。
12、jdk1.8下启动tomcat报“java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init>(Unknown Source)”异常
错误原因:jdk1.8不兼容spring3。
解决办法:将jdk1.8降为jdk1.7。
13、eclipse部署项目时,路径wtpwebapps\XX\WEB-INF\libWEB-INF\lib下缺少Maven依赖的jar包。
解决办法:Deployment Assembly=>add=>Java Build Path Entries=>Maven Dependencies。
14、执行“Maven/Update Project...”后,Deployment Assembly中的Maven Dependencies丢失。
解决办法:Maven/Disable Maven Nature=>Configure/Convert to Maven Project。
15、导入项目“The import javax.servlet.http cannot be resolved”异常。
原因:web工程缺失tomcat目录lib文件夹下的servlet-api.jar包。
解决办法:添加缺失的jar包,也可以通过Project=>Properties=>Libraries=>Add Library=>Server Runtime=>Next=>选择Server=>Finish来完成。
16、导入项目报“Access restriction:The type BASE64Encoder is not accessible due to restrict”。
解决办法:在confiure build path中去掉jre system library,然后重新加载jre system library。
17、可以在Servers中启动Tomcat,但通过tomcat7-maven-plugin插件的tomcat7:run命令启动失败报异常“java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]”
解决办法:设置servlet-api依赖范围为:<scope>provided</scope>。
18、运行Maven build 时报“非法字符: \65279”
解决办法:将源文件的内容复制到记事本里面,然后删除原来的文件,重新创建一个同名的java文件,将记事本里面的文本复制会新建文件中。
19、Maven build报“错误: 程序包com.sun.image.codec.jpeg不存在”
解决办法:这个类文件的位置在jre/lib/rt.jar,配置maven-compiler-plugin插件。
20、Eclipse卡慢,处于“the user operation is waiting”状态
解决办法:右键工程=>Properties=>Builders=>将带有 validator的选项全部去掉。
21、Eclipse中svn不显示提交人
解决办法:Window=>Preferences=>Team=>SVN=>Lable decorations=>Text Decorations
22、CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException
解决办法:右键工程=》Maven=》Update Project=>勾选Force Update of Snapshots/Releases
错误原因:webAppRootKey是在java web项目的web.xml配置文件中表示项目的唯一标示,在Eclipse调试Web项目时,项目的路径是一个临时路径,不在真正的路径下,可以通过log4j日志的方式打印出属性值,来看看临时项目路径在哪里,可以用System.getProperty("web.sample.root");如果web.xm 内没有设置webAppRootKey项,是为默认设置,那么webAppRootKey就是缺省的"webapp.root"。
解决办法:两个web应用中定义了相同的webAppRootKey或者都没有定义,则现在就需要为每个web都定义一个webAppRootKey。
### app1:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>app1.root</param-value>
</context-param>
### app2:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>app2.root</param-value>
</context-param>
2、eclipse下修改项目名导致tomcat内发布名不一致
解决办法:右击项目->Properties->Web project settings->修改Context root中内容。
3、无法正常启动tomcat 严重: A child container failed。。。Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
错误原因:一般情况下,通过Caused by后面的描述可知,导致出错的原因,但是实际有些错误并不是这样。这个错误通过“Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext”,以为是缺少spring中的lib包,但是并不缺少包。
解决办法:删除原有tomcat server,重新部署项目。
4、Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
错误原因:PermGen space是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的Class在被Loader时就会被放到PermGen space中它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果应用中有很多CLASS就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候如果你的WEB APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息。
解决办法:
a、手动设置MaxPermSize大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/catalina.bat,
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:set JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m;
b、修改eclipse.ini文件,修改如下:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx512m
-XX:PermSize=64M
-XX:MaxPermSize=128M
c、修改eclipse中tomcat内存大小
windows=>preferences=>java=>installed jres=>选中并编辑=>设置Default VM arguments:-Xms512M -Xmx1024M -XX:MaxPermSize=512m
5、Eclipse启动Tomcat异常:Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already
解决办法:
a、一般情况下,打开任务管理器,结束"javaw.exe"这个进程。
b、找出哪个端口被占用:命令提示符下,输入netstat -aon | findstr 8080-->找出端口被哪个进程占用:tasklist |findstr 7742(假设此时PID为7742)-->结束进程:taskkill -F -IM javaw.exe或taskkill /pid 7742 /F(假设此时进程名为javaw.exe)。
6、JSP页面提示“Multiple annotations found at this line: - javax.servlet.jsp.PageContext cannot be resolved to a type”异常
解决办法:window=>preferences=>server=>runtime environments=>选择运行环境(这里Apache Tomcat v7.0)=>next=>browser=>选择服务器安装路径,jre环境。
7、导入项目报“xxx cannot be resolved to a type”异常
解决办法:
1)右击项目=>Build Path=>Configure Build Path=>Libraries=>检查jdk版本;
2)右键项目=>Properties=>Resource=>配置编码为UTF-8
8、Project Facts修改Dynamic web module时报“Cannot change version of project facet Dynamic web module to 2.5”异常
解决办法:取消Dynamic web module选项=>Apply=>选择2.5;如果还不能,再参考文章http://blog.csdn.net/steveguoshao/article/details/38414145
9、右键项目Properties,找不到“Deployment Assembly”
解决办法:参考文章http://josh-persistence.iteye.com/blog/1926808
10、运行项目报“java.lang.IllegalArgumentException: Document base XX\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XX does not exist or is not a readable directory"异常,clean项目也无法发布到”XX\tmp0\wtpwebapps\XX“目录。
解决办法:参考8和9。
11、eclipse启动tomcat服务报“log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: ..\jeecglogs\jeecg_log_.txt (拒绝访问。)”异常。
错误原因:权限不够。
解决办法:以管理员身份运行eclipse或者更改日志路径至非只读目录下。
12、jdk1.8下启动tomcat报“java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init>(Unknown Source)”异常
错误原因:jdk1.8不兼容spring3。
解决办法:将jdk1.8降为jdk1.7。
13、eclipse部署项目时,路径wtpwebapps\XX\WEB-INF\libWEB-INF\lib下缺少Maven依赖的jar包。
解决办法:Deployment Assembly=>add=>Java Build Path Entries=>Maven Dependencies。
14、执行“Maven/Update Project...”后,Deployment Assembly中的Maven Dependencies丢失。
解决办法:Maven/Disable Maven Nature=>Configure/Convert to Maven Project。
15、导入项目“The import javax.servlet.http cannot be resolved”异常。
原因:web工程缺失tomcat目录lib文件夹下的servlet-api.jar包。
解决办法:添加缺失的jar包,也可以通过Project=>Properties=>Libraries=>Add Library=>Server Runtime=>Next=>选择Server=>Finish来完成。
16、导入项目报“Access restriction:The type BASE64Encoder is not accessible due to restrict”。
解决办法:在confiure build path中去掉jre system library,然后重新加载jre system library。
17、可以在Servers中启动Tomcat,但通过tomcat7-maven-plugin插件的tomcat7:run命令启动失败报异常“java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]”
解决办法:设置servlet-api依赖范围为:<scope>provided</scope>。
18、运行Maven build 时报“非法字符: \65279”
解决办法:将源文件的内容复制到记事本里面,然后删除原来的文件,重新创建一个同名的java文件,将记事本里面的文本复制会新建文件中。
19、Maven build报“错误: 程序包com.sun.image.codec.jpeg不存在”
解决办法:这个类文件的位置在jre/lib/rt.jar,配置maven-compiler-plugin插件。
20、Eclipse卡慢,处于“the user operation is waiting”状态
解决办法:右键工程=>Properties=>Builders=>将带有 validator的选项全部去掉。
21、Eclipse中svn不显示提交人
解决办法:Window=>Preferences=>Team=>SVN=>Lable decorations=>Text Decorations
22、CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException
解决办法:右键工程=》Maven=》Update Project=>勾选Force Update of Snapshots/Releases
相关文章推荐
- Java socket通信
- 解决Eclipse解析不了std::string的方法
- struts2 标签变形和 样式class无效 问题解决方法
- springmvc文件上传下载
- java底层知识(2)--内存知识
- 关于eclipse中ClassNotFoundException:com.mysql.jdbc.Driver的解决办法
- java 文件相关问题
- 如何在 Eclipse 中使用命令行
- Java动态代理实现原理浅析
- java多线程总结
- Java中可变长参数的使用及注意事项
- 当js运行在java上,会有那些令人惊喜的表现呢!
- java如何在项目依赖的jar包中查找冲突的类
- JAVA中int、String的类型转换
- [Weblogic]startWebLogic.cmd配置JAVA_OPTIONS无效的解决思路与方案
- 解决eclipse的 Invalid project description. overlaps the location of another project: 问题
- 举例讲解设计模式中的访问者模式在Java编程中的运用
- java环境变量配置。
- eclipse中maven环境部署以及使用
- java中>> 和 >>>的区别