[b]引言:[/b]
eclipse3.4下创建一个java web项目称为“Dynamic Web Project”,而myeclipse6.5下创建的是一个“Web Project”。两个IDE在创建项目的时候,选项填写也略有不同。本文以一个eclipse下项目移至myeclipse下报错的解决过程,来理一下不同点。
[b]正文:[/b]
[b][size=small]第一部分 简单介绍[/size][/b]
[size=x-small] 1,下面是两个IDE创建j2ee项目的各自截图。[/size]
[img]http://dl.iteye.com/upload/attachment/525505/fafc6b72-ad98-39ff-855b-1138c67641ca.jpg[/img]
“eclipse_j2ee_creatwizard.jpg”
[img]http://dl.iteye.com/upload/attachment/525507/017f1819-8405-3744-a585-98e90d07d285.jpg[/img]
“myeclipse_j2ee_creatwizard.jpg”
(提交一下看图写)
[size=x-small]2,区别不同。[/size]
eclipse需要指定web容器(Apatch Tomcat v6.0),myeclipse需要指定JDK(只有5.0, 1.4, 1.3可选)。因为问题主要集中在三点上了:一是web容器匹配度;二是JDK版本;三是二者本身项目信息收集手法差异(体现在“三点”上——即项目下3个以“.”号打头的文件上)。
[b][size=small]第二部分 迁移报错解决[/size][/b]
[b][size=small]1,“HttpServlet cannot be resolved to a type”[/size][/b]
或如下异常:
其原因都是少了Tomcat\bin\servlet-api.jar。因此将此包拷入myeclipse项目的lib目录下即可(一般此处的包会被自动引入项目,如未引入,手工操作add进来)。报错即可消失。
[b][size=small]2,“Target runtime Apache Tomcat v6.0 is not defined.”[/size][/b]
这个问题的解决手法都比较山寨,给个参考地址吧[url=http://blog.youkuaiyun.com/xw13106209/article/details/5910358]http://blog.youkuaiyun.com/xw13106209/article/details/5910358[/url]。
因为笔者在试的时候发现这方法还可引发后续的问题。在此建议使用maven2来处理吧,clean一下,eclipse:eclipse一下应该可以恢复正常(声明:未测试)。
还有个比较快捷的解决方法是,直接创建同名的myeclipse空项目,然后导入项目代码。
[b][size=small]3,“The method XXX of type MyListener must override a superclass method”[/size][/b]
这是因为jdk5.0和jdk6.0对@Override的理解有差异。jdk5.0下实现接口,并不认为是方法重写。
解决方法有二。一是,如果要固定在jdk5.0规范下,就删掉这些@Overrid(或者注释掉);二是,如果可以用jdk6.0直接换掉。如此操作: Window | Perference | Java | compiler,“Level”的下拉框中选择6.0。即可。
eclipse3.4下创建一个java web项目称为“Dynamic Web Project”,而myeclipse6.5下创建的是一个“Web Project”。两个IDE在创建项目的时候,选项填写也略有不同。本文以一个eclipse下项目移至myeclipse下报错的解决过程,来理一下不同点。
[b]正文:[/b]
[b][size=small]第一部分 简单介绍[/size][/b]
[size=x-small] 1,下面是两个IDE创建j2ee项目的各自截图。[/size]
[img]http://dl.iteye.com/upload/attachment/525505/fafc6b72-ad98-39ff-855b-1138c67641ca.jpg[/img]
“eclipse_j2ee_creatwizard.jpg”
[img]http://dl.iteye.com/upload/attachment/525507/017f1819-8405-3744-a585-98e90d07d285.jpg[/img]
“myeclipse_j2ee_creatwizard.jpg”
(提交一下看图写)
[size=x-small]2,区别不同。[/size]
eclipse需要指定web容器(Apatch Tomcat v6.0),myeclipse需要指定JDK(只有5.0, 1.4, 1.3可选)。因为问题主要集中在三点上了:一是web容器匹配度;二是JDK版本;三是二者本身项目信息收集手法差异(体现在“三点”上——即项目下3个以“.”号打头的文件上)。
[b][size=small]第二部分 迁移报错解决[/size][/b]
[b][size=small]1,“HttpServlet cannot be resolved to a type”[/size][/b]
或如下异常:
HttpServlet cannot be resolved to a type.
HttpServletRequest cannot be resolved to a type.
HttpServletResponse cannot be resolved to a type.
ServletException cannot be resolved to a type.
The import javax.servlet cannot be resolved.
其原因都是少了Tomcat\bin\servlet-api.jar。因此将此包拷入myeclipse项目的lib目录下即可(一般此处的包会被自动引入项目,如未引入,手工操作add进来)。报错即可消失。
[b][size=small]2,“Target runtime Apache Tomcat v6.0 is not defined.”[/size][/b]
这个问题的解决手法都比较山寨,给个参考地址吧[url=http://blog.youkuaiyun.com/xw13106209/article/details/5910358]http://blog.youkuaiyun.com/xw13106209/article/details/5910358[/url]。
因为笔者在试的时候发现这方法还可引发后续的问题。在此建议使用maven2来处理吧,clean一下,eclipse:eclipse一下应该可以恢复正常(声明:未测试)。
还有个比较快捷的解决方法是,直接创建同名的myeclipse空项目,然后导入项目代码。
[b][size=small]3,“The method XXX of type MyListener must override a superclass method”[/size][/b]
这是因为jdk5.0和jdk6.0对@Override的理解有差异。jdk5.0下实现接口,并不认为是方法重写。
解决方法有二。一是,如果要固定在jdk5.0规范下,就删掉这些@Overrid(或者注释掉);二是,如果可以用jdk6.0直接换掉。如此操作: Window | Perference | Java | compiler,“Level”的下拉框中选择6.0。即可。