MyEclipse2016 CI 3 live preview功能引发的问题

刚刚升级了新版本的MyEclipse 2016 CI 7,却发现没有破解成功,于是就降低了版本使用了CI3,破解成功,然后吧自己的项目导进来,废了半天劲,总体感觉有点卡,不大爽,今天做了一个小项目,javaweb程序,运行时发现一个非常奇怪的问题,搞了大半天,能把人气死,我把项目,文件,文件内容,服务器,过滤器这类的都使用统一编码UTF-8,结果发现运行系统,只要存在中文统统是乱码显示,后来查询编译内容,源码1kb文件被编译成了快90kb,一系列调试确定不是代码问题,原来尼玛是IDE编辑器的问题,下面是解决方案,引用一个朋友的文章,感谢!

问题说明

MyEclipse 2016目前最新版为CI 3,从CI 1起,添加了live preview功能,也就是实时预览,详情看官网介绍,这个功能在web项目中是默认开启的。但是这个功能引发的bug目前还得不到解决,已经得到官网的证实,确实是一个bug,并且会在后续版本中更新。

bug详情

开启live preview功能后,发布web项目时,myeclipse会自动在所有jsp文件的标记中添加 “data-genuitec”属性,注意是发布时,生成到tomcat webapp目录里面的jsp,通过这个属性,MyEclipse实现了live preview功能,但是开启tomcat,发布项目后,访问项目地址会报以下错误:

org.apache.jasper.JasperException: /index.jsp (line: 2, column: 0) Forward has invalid attribute: data-genuitec
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)
org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:200)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:589)
org.apache.jasper.compiler.Node$ForwardAction.accept(Node.java:1092)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1853)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
…

示例index.jsp文件内容为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html data-genuitec="wc1-6-177">
  <head data-genuitec="wc1-6-178">
    <title data-genuitec="wc1-6-179">My JSP 'index.jsp' starting page</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" data-genuitec="wc1-6-180"/>
    <meta http-equiv="pragma" content="no-cache" data-genuitec="wc1-6-181">
    <meta http-equiv="cache-control" content="no-cache" data-genuitec="wc1-6-182">
    <meta http-equiv="expires" content="0" data-genuitec="wc1-6-183">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3" data-genuitec="wc1-6-184">
    <meta http-equiv="description" content="This is my page" data-genuitec="wc1-6-185">
  <script data-genuitec="wc1-6-186">

也就是<jsp:forward/>标签中的data-genuitec属性不能够被解析,删除index.jsp文件中的该属性就可以正常访问项目了,但是这样之后又有另外一个问题,就是项目编码有问题,项目源码中的jsp编码没问题,但是发布后,也就是MyEclipse添加data-genuitec属性后复制到tomcat的webapp目录中的jsp编码有问题,所以怀疑是MyEclipse的问题

Problems About Live Preview With MyEclipse 2016 CI 3

解决方法

目前只能等官网发布新版本了,临时解决方法就是关闭live preview功能,其实这个功能很有用,期待以后的版本吧。

关闭方法如下:

MyEclipse2016 CI 3 live preview功能引发的问题

两种方法都可以。

2016.6.29更新


今天收到官方开发人员发来的邮件,说myeclipse 2016 CI 3更到了CI 4,于是赶紧更新了下,发现之前的注入属性问题和编码问题都解决了,除了Live Preview改名为CodeView,外加图标换了之后,方法使用是一样的,默认服务器不开启CodeView

MyEclipse2016 CI 3 live preview功能引发的问题

发布项目之后,访问网站,发现浏览器中多了一个面板:

MyEclipse2016 CI 3 live preview功能引发的问题

可以选择开启CodeView功能的文件(会发现,开启功能的这些文件都被注入了data-genuitec属性,不过这次没有exception),另外还有一些待开发的功能,我也是非常期待的,期待下次update

官网CodeView文档:https://www.genuitec.com/products/webclipse/learning-center/using-live-preview/

虽然我目前在使用IDEA,并且越来越感觉到IDEA的方便,不过myeclipse的这些功能也是很实用的。

附上面板功能截图:

MyEclipse2016 CI 3 live preview功能引发的问题

MyEclipse2016 CI 3 live preview功能引发的问题

MyEclipse2016 CI 3 live preview功能引发的问题

MyEclipse2016 CI 3 live preview功能引发的问题


未经允许请勿转载:程序喵 » MyEclipse2016 CI 3 live preview功能引发的问题

点  赞 (0) 打  赏
分享到: