`

setCharacterEncoding未定义

 
阅读更多

setCharacterEncoding未定义  

做项目时,从svndownload一个项目到myEclipse后,项目报错,打开出错的java文件,提示如下错误:

Servlet.service() for servlet jsp threw exception   java.lang.Error: Unresolved compilation problem: The method setCharacterEncoding(String) is undefined for the type ServletResponse

简单说来就是setCharacterEncoding方法未定义。

 

解决方案1

打开buildpath,发现同时导入了servlet.jarjavaEE 5。在他们中都有javax.servlet.http.HttpServletRequest,而项目中默认是导入的servlet.jar 中的该类,而可能该jar版本过低,反正在该jar包的HttpServletRequest类中就是没得setCharacterEncoding方法。移除servlet.jar即可。

此方法失败。

解决方案2

这个方法是接口ServletResponse中的方法,但在引用的servlet.jar中的这个接口中,并没有这个方法。而在J2EE中也有servlet.jar,而这个jar包中的servletResponse接口中,确有这个方法。但是如何让工程首先引用这个接口呢?首先删除servlet.jar的引用,然后重新添加即可。

问题可以解决。但是真的需要每次遇到这个问题都这样吗?难道myEclipse针对兄的jar包,就没有控制引用顺序的方法吗,答案是由。

解决方案3

打开buildpath,切换到Order and Export 选项卡,把J2EE的库移至前边即可,如下图。就这么简单。

 setCharacterEncoding未定义 - 石小永-信息提高班 - 石小永 廊坊师范学院七期信息技术提高班

 

 

总结:之所以出现setCharacterEncoding未定义的错误,是因为引入(或者说使用)的jar包没有这个方法,是真的没有。而有这个方法的jar包又没有被引入。删除错误的jar包固然是个解决办法,但如果有很多个冲突的jar包,或者这些jar包之间不仅仅是版本的关系的时候,使用更改引用顺序将会是一种更好的方法。

 

之后又遇到了个isWrapperFor 方法未定义的错误。有了上次的经验,去同事那看了下,他那引用的是rt.jar,而我这引用的是class12.jar(我们的jar包是相同的),之索引出现这种问题,可能是引用的顺序造成的。更爱了引用顺序后,然后错误就消失了

 

 

方法3 亲测可行。

感谢博主 http://sxyandapp.blog.163.com/blog/static/61488308201282492739161/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics