阶段一:情况项目在Myeclipse 2017 CI没办法正常编译,因此更换了工具:
Eclipse版本信息Mars.2 Release (4.5.2)
问题tomcat 7运行正常,8报错如下:
四月 12, 2017 6:06:20 下午 org.apache.catalina.startup.ContextConfig processAnnotationsJar
严重: Unable to process Jar entry [org/apache/ibatis/javassist/tools/web/ServiceThread.class] from Jar
[jar:file:/E:/server/apache-tomcat-8.0.9/webapps/parking-cms/WEB-INF/lib/mybatis-3.4.0.jar!/] for annotations
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(Unknown Source)
at org.apache.tomcat.util.bcel.classfile.Utility.swallowMethodParameters(Utility.java:188)
at org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:159)
at org.apache.tomcat.util.bcel.classfile.FieldOrMethod.<init>(FieldOrMethod.java:76)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:226)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:101)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1987)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1940)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1915)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1876)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1145)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:767)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5083)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1686)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
总结:电脑上安装了Tomcat 7、8、9和jdk 7、8和MyEclipse 2017 CI、Eclipse 4.5.2,来回的变换JAVA_HOME和CATALINA_HOME及工具启动和Tomcat自启动,而jar包版本是用maven管理的,是否存在版本对应的问题?
阶段二:情况项目在Myeclipse 2017 CI仍然没办法正常编译,因此更换了工具:
MyEclipse 2016可以正常运行编译、其他的2017 CI也可以运行编译!
这个过程有一个异常报错(其他):
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/parking-cms]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1861)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/parking-cms] due to a StackOverflowError.
Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was
[org.bouncycastle.asn1.ASN1EncodableVector->org.bouncycastle.asn1.DEREncodableVector->org.bouncycastle.asn1.ASN1EncodableVector]
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2126)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2072)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1947)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1913)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1898)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1330)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5380)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 more
四月 13, 2017 10:27:25 上午 org.apache.catalina.startup.HostConfig deployDescriptor
严重: Error deploying configuration descriptor C:\Users\Administrator\Workspaces\MyEclipse 2016\.metadata\.me_tcat7\conf\Catalina\localhost\parking-cms.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/parking-cms]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1861)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
总结:也是报哪个LifecycleException异常,Tomcat对应的jdk版本不对,导致的异常!
阶段三:情况项目在Myeclipse 2017 CI没办法正常编译的情况 描述:
现象一:
初期如图:properties、spring、xml 文件夹,里面都是xml文件!
项目清理后【Project - Clean】,仅仅是这三个文件的重新生成。
正常表现(MyEclipse 2016、Eclipse 4.5.2编译过程)是三个文件手动删除后,项目刷新时,这三个文件重新生成,点击清理后如图:
重新生成这四个文件夹,cn文件夹里是java编译后的class文件。
现象二:
MyEclipse 2017 CI中把maven包删除后的一瞬间,cn文件夹可以生成,重新导入到项目中后又仅仅是那三个xml文件夹的清理生成了。
现象三:
MyEclipse 2017 CI中,第一项总是不停刷新,而正常的如下:
有点想确定这个是不是一个突破口!
延伸:
项目有红叉号的不能正常编译,且2017 CI中存在java代码报错,但文件不显示错误的标志!不报错的可以正常编译。可能真是2017 CI更新后出问题了。
总结:仍是搞不清楚,2017 CI是破解版,中途的一次升级后,注册码失效,之后重装及反复重装,好像才出现这个问题的(仅限这一个项目),因此我觉得应该是项目出现问题,或者是jdk环境与jar包的问题,也可能破解版总会这样犯神经,这个问题困扰了自己一天也只是有个模糊的认识重新下装个2016,就先告一段落吧!