杂记
随笔 - 32, 文章 - 1, 评论 - 5, 引用 - 0
数据加载中……
eclipse你不知道的.classpath
题目是噱头,用的人都知道。我想说的是classpath中不太注意的classpathentry excluding。
昨天在跑junit测试时,报错提示springframe.test.jar多次加载。 nnd,前天跑还一切正常,今天切了一下版本,又切回来,就不行了。
java.lang.IllegalStateException: Unable to dynamically start generated unit test bundle
at org.springframework.osgi.test.AbstractOnTheFlyBundleCreatorTests.postProcessBundleContext(AbstractOnTheFlyBundleCreatorTests.java:
527
)
at org.springframework.osgi.test.AbstractConfigurableBundleCreatorTests.postProcessBundleContext(AbstractConfigurableBundleCreatorTests.java:
223
)
at org.springframework.osgi.test.AbstractOsgiTests.startup(AbstractOsgiTests.java:
262
)
at org.springframework.osgi.test.AbstractOsgiTests.prepareTestExecution(AbstractOsgiTests.java:
374
)
at org.springframework.osgi.test.AbstractOsgiTests.runBare(AbstractOsgiTests.java:
203
)
at org.springframework.osgi.test.AbstractOsgiTests$
1
.protect(AbstractOsgiTests.java:
184
)
at junit.framework.TestResult.runProtected(TestResult.java:
124
)
at org.springframework.osgi.test.AbstractOsgiTests.run(AbstractOsgiTests.java:
181
)
at junit.framework.TestSuite.runTest(TestSuite.java:
230
)
at junit.framework.TestSuite.run(TestSuite.java:
225
)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:
130
)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
38
)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
460
)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
673
)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
386
)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
196
)
Caused by: org.osgi.framework.BundleException: Cannot
import
a
package
more than once
"
org.springframework.osgi.test
"
at org.eclipse.osgi.internal.resolver.StateBuilder.checkImportExportSyntax(StateBuilder.java:
533
)
at org.eclipse.osgi.internal.resolver.StateBuilder.validateHeaders(StateBuilder.java:
185
)
at org.eclipse.osgi.internal.resolver.StateBuilder.createBundleDescription(StateBuilder.java:
49
)
at org.eclipse.osgi.internal.resolver.StateObjectFactoryImpl.createBundleDescription(StateObjectFactoryImpl.java:
32
)
at org.eclipse.osgi.internal.baseadaptor.BaseStorage.updateState(BaseStorage.java:
1112
)
at org.eclipse.osgi.internal.baseadaptor.BundleInstall.commit(BundleInstall.java:
128
)
at org.eclipse.osgi.framework.internal.core.Framework.installWorkerPrivileged(Framework.java:
965
)
at org.eclipse.osgi.framework.internal.core.Framework$
2
.run(Framework.java:
854
)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.Framework.installWorker(Framework.java:
905
)
at org.eclipse.osgi.framework.internal.core.Framework.installBundle(Framework.java:
849
)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.installBundle(BundleContextImpl.java:
234
)
at org.springframework.osgi.test.AbstractOnTheFlyBundleCreatorTests.installAndStartBundle(AbstractOnTheFlyBundleCreatorTests.java:
539
)
at org.springframework.osgi.test.AbstractOnTheFlyBundleCreatorTests.postProcessBundleContext(AbstractOnTheFlyBundleCreatorTests.java:
524
)
15
more
找了一个小时都没找到原因。
项目背景是该模块使用的是osgi框架,框架中包含spring的所有包。但是在编译时,需要单独把测试包加进来。
根据问题,我怀疑是classpath,但是如果去掉jar包引用,连编译都编译不过去。
最后翻到eclipse的.classpath文件才找到原因,classpathentry excluding这家伙被覆盖掉了。
excluding标签是保证项目在启动时不会讲指定的目录jar加载到内存,只做编译引用。
我在切换版本时,将其覆盖了。
posted on 2010-12-09 18:24
colorfire
阅读(3212)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
Powered by:
BlogJava
Copyright © colorfire
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2010年12月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Java(1)
(rss)
Linux(1)
(rss)
技术
(rss)
数据库
(rss)
脚本语言(7)
(rss)
随笔档案
2011年10月 (2)
2011年5月 (1)
2011年4月 (2)
2011年3月 (2)
2011年2月 (1)
2011年1月 (1)
2010年12月 (6)
2010年11月 (6)
2010年10月 (1)
2010年8月 (3)
收藏夹
收藏夹
(rss)
博客链接
Caspar Ant
Red Hat 测试组专家 Linux专家
Fenng
Architect / Blogger Work@丁香园(DXY.cn) ex Work@支付宝(Alipay)
PHP平凡世界
GAE平台使用
python geek
python erlang linux programing
python相关
召仁
后端技术-杨卫华
回忆未来-张宴
金山 系统架构师
惠普-招聘
求职博客
Jobs Digg 是一个实验性的招聘求职互助协作平台. 覆盖工作相关信息: 招聘、求职、就业、面试、裁员、感悟
搜索
最新评论
1. re: perl中神奇的split
评论内容较长,点击标题查看
--forwall
2. re: 人性的小船[未登录]
顺应自然,自然能被理解吧!
--小寻
3. re: 人性的小船
有一个哈佛公开课《什么是正义》就有这么一个案例。结果是有罪。至于原因,那里面也分析得很透彻。
--XD
4. re: 人性的小船
评论内容较长,点击标题查看
--张昊
5. re: 人性的小船
好
--淘宝皇冠店126
阅读排行榜
1. eclipse你不知道的.classpath(3212)
2. 安装perl的crc32模块(2243)
3. 人性的小船(1845)
4. [数据库]Oracle释放磁盘空间(1628)
5. Eclipse自动补全(1234)
评论排行榜
1. 人性的小船(4)
2. perl中神奇的split(1)
3. 安装perl的crc32模块(0)
4. 利用Java反射读取XML配置文件(0)
5. 转:JAVA处理XML文件方法比较(0)