MyEclipse环境的项目改为在Eclipse中运行爬坑记【我】
新检出一个web项目,同事都是运行在MyEclipse中的,我用Eclipse启动,
1、首先是许多jar包报错:
处理方法为 remove掉,然后 选 WEB-INF 下的所有 jar 重新添加进去。
2、MyEclipse 中自带 JavaEE5 library jar包合集,而Eclipse中没有,项目中有用到,解决方法
从同事的 MyEclipse 安装目录下把 EE_5 目录拷过来,主要是有下面这4个jar包:
然后,添加到项目中,可以建一个用户目录:
这样就建好了,如图:
但是这时,项目启动,还是不会把这些jar引入到项目中,还需要如下配置:
添加完是如下效果:
这样就把Javaee5的相关jar包彻底引入到项目中了。
3、启动项目,报如下异常:
典型异常信息: URL [jar:file:/C:/Program%20Files%20(x86)/Java/jre6/lib/ext/jfxrt.jar!/com/sun/glass/ui/Accessible.class
全部异常信息如下:
- 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
- org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [applicationContext-service.xml]
- Offending resource: class path resource [config/spring/applicationContext.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/C:/Program%20Files%20(x86)/Java/jre6/lib/ext/jfxrt.jar!/com/sun/glass/ui/Accessible.class]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 3805021
- at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
- at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
- at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:271)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:196)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:181)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
- at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
- at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
- at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
- at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
- at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
- at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
- at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:530)
- at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:444)
- at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
- at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
- at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
- at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
- at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
- at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
- at java.util.concurrent.FutureTask.run(Unknown Source)
- at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
- at java.lang.Thread.run(Unknown Source)
- Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/C:/Program%20Files%20(x86)/Java/jre6/lib/ext/jfxrt.jar!/com/sun/glass/ui/Accessible.class]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 3805021
- at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:261)
- at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
- at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
- at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
- at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1423)
- at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1413)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
- at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
- at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:255)
- ... 29 more
- Caused by: java.lang.ArrayIndexOutOfBoundsException: 3805021
- at org.springframework.asm.ClassReader.readInt(Unknown Source)
- at org.springframework.asm.ClassReader.accept(Unknown Source)
- at org.springframework.asm.ClassReader.accept(Unknown Source)
- at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:59)
- at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
- at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101)
- at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:237)
- ... 42 more
- com.cthq.crm.webservice.task.BussinessTask@834e7
- 2019-08-12 15:45:26,084 INFO [Timer-1] com.jtcrm.resource.framework.taskmanager.CacheFlushLoigc.processLogic(CacheFlushLoigc.java:28) {} - processLogic start!!!
- 2019-08-12 15:45:26,097 INFO [Timer-1] com.jtcrm.resource.framework.taskmanager.CacheFlushLoigc.processLogic(CacheFlushLoigc.java:33) {} - 0
- 2019-08-12 15:45:26,097 INFO [Timer-1] com.jtcrm.resource.framework.taskmanager.CacheFlushLoigc.processLogic(CacheFlushLoigc.java:72) {} - processLogic end!!!
- 2019-8-12 15:45:26 org.apache.catalina.core.StandardContext startInternal
- 严重: Error listenerStart
- 2019-8-12 15:45:26 org.apache.catalina.core.StandardContext startInternal
- 严重: Context [/CRMResource] startup failed due to previous errors
- 2019-8-12 15:45:26 org.apache.catalina.core.ApplicationContext log
- 信息: Closing Spring root WebApplicationContext
- 2019-8-12 15:45:26 org.apache.catalina.core.StandardContext listenerStop
- 严重: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
- java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
- at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:172)
- at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1078)
- at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1052)
- at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1000)
- at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:548)
- at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142)
- at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5014)
- at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5659)
- at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
- at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
- at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
- at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
- at java.util.concurrent.FutureTask.run(Unknown Source)
- at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
- at java.lang.Thread.run(Unknown Source)
不管是 使用 jdk 1.8,还是jdk 1.6 都是报上面的异常。
最终参考下面的博文,
org.springframework.asm.ClassReader.(Unknown Source) 解决方案
此类问题一般在 spring版本 与 jdk版本不匹配的情况下会出现。
匹配规则:
spring3 + java7
spring4 + java8
解决方案:
1:检查项目的jdk编译版本 :右键项目,进入项目偏好设置,找到 java Compiler ,将jdk修改到你对应的spring版本
2:检查tomcat的jre版本:以eclipse为例:打开eclipse的偏好设置,搜索 server ,找到 Runtime Environments 找到你加载进来的tomcat 点击edit,将jre修改为对应你spring的版本。
到此问题应该就能得到解决。
发现本地项目用的Spring是3.1:
将jdk改为1.7后,故障排除【奇怪的是,同时用MyEclipse,用的其自带1.6环境运行项目居然不报错】。
Eclipse切换jdk的方法:
一、Eclipse中整体添加多个jdk
这里只要选中一个包含 jdk 内容的目录即可,这个目录中的jdk不用真的安装在电脑里面,只要有这个文件夹就行了。
这样一个新的 jdk环境就添加到Eclipse中了,一个Eclipse中可以添加多个JDK环境。
二、项目的JDK主要有两个部分
1编译环境:
项目右键
2、是运行项目的Tomcat的jdk环境:
MyEclipse环境的项目改为在Eclipse中运行爬坑记【我】的更多相关文章
- myEclipse中的web项目直接引入到eclipse中运行
首先打开项目属性(Properties),如果动态web项目被作为普通java项目引进去,需要首先修改为web项目,如下图: 确定后即可在eclipse中看到转换为了动态的web项目,然后继续属性(P ...
- 92.vue---新手从本地项目开发到服务器线上运行爬坑。
因为我做的是后台,所以不用做SEO 参考 本项目的定位是后台集成方案,不太适合当基础模板来进行二次开发.因为本项目集成了很多你可能用不到的功能,会造成不少的代码冗余.如果你的项目不关注这方面的问题,也 ...
- 5- 如何把MyEclipse中的web项目导入到Eclipse中运行
from: 如何把MyEclipse中的web项目导入到Eclipse中运行 2016年09月12日 20:57:51 dancheren 阅读数:35329 标签: eclipse 更多 个人分类: ...
- 如何把MyEclipse中的web项目导入到Eclipse中运行
有时我们需要将MyEclipse中的项目导入到Eclipse中运行,如果不注意到一些细节,会造成无法运行的后果.下面就说说具体操作: 如何导入到Eclipse就不在重述了,导入后出现如下错误: 与上面 ...
- MyEclipse中的项目导入到Eclipse中运行的错误解决
之前用的myEclipse,后来把项目导入eclipse发现报错,将MyEclipse中的项目导入到Eclipse中运行,不注意一些细节,会造成无法运行的后果.下面就说说具体操作:导入后出现如下错误: ...
- monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)
monkeyrunner脚本使用Python语法编写,但它实际上是通过Jython来解释执行. Jython是Python的Java实现,它将Python代码解释成Java虚拟机上的字节码并执行,这种 ...
- 转载:monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)
转载自:lynnLi 的monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四) monkeyrunner脚本使用Python语法编写,但它实际上是通过Jython来 ...
- 在Eclipse中运行Web项目Jsp网页时提示端口被占用的解决办法:Several ports (8005, 8888, 8009) required by Tomcat v9.0 Server at localhost are already in use.
问题: 在Eclipse中运行Web项目Jsp网页启动Tomcat时提示端口被占用: Several ports (8005, 8080, 8009) required by Tomcat v9.0 ...
- Nodejs学习笔记(二)——Eclipse中运行调试Nodejs
前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...
随机推荐
- SpringMVC返回void的三大方法
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 在是springMVC的void的返回值中,有三大方法可以运行,个人觉得 ...
- Java 中的多态,一次讲个够之接口实现关系中的多态
上文还没有写完,这一篇继续 Java 中的多态,一次讲个够之继承关系中的多态 https://www.cnblogs.com/qianjinyan/p/10824576.html 接口实现关系,和继承 ...
- 用js刷剑指offer(包含min函数的栈)
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 牛客网链接 js代码 const stack1 = [] const stack2 = ...
- NginX——配置负载均衡
A. 在http模块加上upstream配置 upstream www.myweb.com { server 127.0.0.1:9100 weight=3; server ...
- No PostCSS Config found in报错解决
前情提要]日前本人将本地项目上传GitHub之后,然后再clone到本地,运行是报错:Error: No PostCSS Config found in... 项目在本地打包运行的时候不报错,上传到 ...
- python 2.7安装pygame报错解决办法pygame-1.9.4-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.
python下载python安装包 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 下载完后进入cmd命令行执行安装,报错: pygame-1.9 ...
- java堆栈信息查看,以及JVM性能查看工具-jconsole+jmap
java-core P487 P515 chapter11,主要讲java的异常,里面很多内容收获良多,之前一直没注意过的. 一,Throwable类获得StackTraceElement ,可进行 ...
- Linux-删除文件空间不释放问题解决
场景描述: 收到zabbix监控报警,晋中生产机器出现磁盘空间不足报警. 远程到该服务器,排查占员工磁盘空间的原因,发现tomcat日志过多,于是清除3天前的日志. 日志清理后,发现磁盘空间没有释放, ...
- vulkan的subpass
最近在写 unity上 vulkan开subpass 似乎pc上subpass 的input attachement hlslcc_fbinput_0绑不上的 在手机上能绑上 说明subpass这个功 ...
- 选择排序之javascript
选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放 ...