virgo服务器中关于"An Import-Package could not be resolved"类的异常解决方法

最近在使用virgo进行开发基本osgi的项目,在环境搭建过程中报得最多的就是异常就是以"An Import-Package could not be resolved"开头的,以自己的理解和实际遇到的问题来看,引起些类异常的原因有二:

第一:环境中引入了不同bundle,名称不一样但是在多个bundle组件中的MANIFEST.MF中的Bundle-SymbolicName的名称一样,当然这种异常会容易找到;

第二:多数为这种情况,就是bundle之间相互引用的包的版本不一样造成.

A.好的情况下能下载到相互兼容的包

B.根据找不到兼容的包.重点来说下这个,项目中报异常为:

An Import-Package could not be resolved. Caused by missing constraint in bundle <EAP_Framework_1.0.0>

constraint: <Import-Package: org.hibernate.loader.collection; version="0.0.0">

constrained to bundle <com.springsource.org.hibernate> constrained bundle version range "[3.3.1.GA,3.3.1.GA]"

An Import-Package could not be resolved. Caused by missing constraint in bundle <com.springsource.org.hibernate_3.3.1.GA>

constraint: <Import-Package: org.slf4j; version="[1.5.2,1.6.0)">

以上为两个相同类型的异常,导致的结果是:

组件<EAP_Framework_1.0.0>和组件<com.springsource.org.hibernate>都不能被加载

原因1:组件<EAP_Framework_1.0.0>不能加载是由于此组件中依赖的组件 org.hibernate.loader.collection包找不到,而这个包是由组件  <com.springsource.org.hibernate>来提供的,也就是说依赖的组件 <com.springsource.org.hibernate>肯定有问题

原因2:组件 <com.springsource.org.hibernate_3.3.1.GA>不能加载(启动)是由于在此组件所导入的包org.slf4j没有成功找到,而且在本组件中所要求的org.slf4j包的版在1.5.2至1.6.0之间才可以.

由上面两个原因可知,异常2是导致异常1的原因,也就是说解决了异常2,所就解决了异常1.组件1没有加载成功就是由于组件2没有加载成功,而组件2没有加载成功是由于找不到合适版本的org.slf4j包,

所以<com.springsource.org.hibernate_3.3.1.GA>组件的要求应该找到版在1.5.2至1.6.0之间的org.slf4j的组件或包,回头来看看

你的virgo-tomcat-server服务器目录\repository\的ext和usr两个目录中有没有合适的包包含org.slf4j的组件(找不到或版不在1.5.2至1.6.0之间),我的这两个目录中都有,但版本都不对为:

com.springsource.slf4j.api-1.5.0.jar和com.springsource.slf4j.api-1.6.1.jar,(一般会以下图方式来下载)

我下载到的两个版本都不符合[1.5.2-1.6.0]的要求,因为一个为1.5.0,一个为1.6.1的,所以老是报错,因为当时也没有找到合适slf4j的bundle版本 ,这个异常折腾了我一个下午及晚上4个小时的时间,后来在同事的帮助下,以解决的!我觉得他是聪明如下:

思路如下:错误的最基本原因是com.springsource.org.hibernate-3.3.1.GA.jar这个bundle中的MANIFEST.MF引用的org.slf4j的包要求的版本为[1.5.2-1.6.0]之间,而virgo-tomcat-server-3.0.3.RELEASE\repository\目录中的ext和usr目录中的关于slf4j的组件包的版本都不在这个范围之内,所以不符合要求才报的异常.

解决方法:修改com.springsource.org.hibernate-3.3.1.GA.jar这个bundle中的MANIFEST.MF中关于org.slf4j的要求范围如下图所示:

应该是会解决这个问题的,帖子有点儿啰嗦,但总起看不懂的好点吧,些贴为原创,转载请注明出处!

时间: 2024-08-26 06:08:35

virgo服务器中关于"An Import-Package could not be resolved"类的异常解决方法的相关文章

AndroidStudio中R文件引用失败(Cannot resolve symbol &#39;R&#39;)的解决方法

常见的两种情况参见:http://xichen.pub/2018/04/08/2018-04-08-Android-TimeCat-解决cant-resolve-symbol-R/ 我的情况是:AndroidManifest.xml文件中的package="com.example.activitytest_5"语句出错.如图: 我的项目的实际包名为com.example.activitytest_6,而这里标记为了com.example.activitytest_5,所以导致AS找不到

[php错误]PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法

使用unserialize函数将数据储存到数据库的时候遇到了这个报错, 后来发现是将gb2312转换成utf-8格式之后, 每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题, 所以需要使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍,代码如下: function mb_unserialize($serial_str) { $out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen(

项目中 2个或者多个EF模型 表名称相同会导致生成的实体类 覆盖的解决方法

场景:  2个数据库, 一个新,一个旧,  把旧的 数据库中的数据,导入到新的数据库中,  使用到了2个 EF实体模型, 新数据库 和 旧数据库中的表,有的名称是相同的 (但是结构是不同的) 旧的数据库中的 tb_area 表,只有2个字段 新数据库中的 tb_area 有很多字段  ,结果新数据库里面的 表,由于和旧数据库的表 重名,导致旧数据库里面的  表生产的cs文件 没有了, 只剩下新数据库中的表实体   那么现在问题就来了,我要调用旧表里面的 model 实体模型,怎么拿呢? 拿不到了

eclipse 中提示tomcat 的端口被占用了 后的最快捷解决方法

很多时候运行tomcat 的时候总是会提示tomcat 的端口呗占用 但是任务管理器里面还找不到是哪个端口被占用了 因此很多人就重新配置tomcat  或者去修改tomcat的端口号 ,其实这么做太麻烦了 ,小弟在这里告诉你一个非常简单的方法. 1.在开始菜单中选择运行  然后输入cmd  进入DOS界面.显示如下: 2.在Dos窗口中输入netstat   -ano|findstr  8080(注意的 我的透明cat 的断口号 是8080 你的断口号是多少就写多少) 输入完成后回车 会弹出下面

在WSL中安装swool报错 error: unrecognized command line option &#39;-V&#39; 的解决方法

Windows Subsystem for Linux Ubuntu中使用pecl安装swool时遇到错误"error: C compiler cannot create executables"."error: unrecognized command line option '-V'" 解决方法 先看解决方法, 将gcc版本降低到4.8即可,因为高版本gcc取消了-V参数: sudo apt install gcc-4.8 -y sudo update-alte

win10中遇到qq视频时摄像头打不开没反应的解决方法

我们在win10系统电脑的使用中,有小伙伴在win10系统的使用中,QQ是我们最常使用到的软件,我们可以直接在上面做很多的操作,qq视频摄像头视频也是我们经常需要使用到的,今天小编就来跟大家分享到我们在win10中遇到qq视频时摄像头打不开没反应的解决方法. 具体的方法和详细的步骤请添加链接描述如下: 1.点击打开开始菜单 - 电脑设置,打开电脑设置窗口:win10中遇到qq视频时摄像头打不开没反应的解决方法-01 2.在打开的电脑设置窗口中,点击打开"隐私"项进入下一步操作: 3.在

阿里云Windows server 2008服务器搭建VPN 图文教程,购买境外服务器自建vpn,Win8/win10 连接VPN被阻止,出现812错误解决方法

阿里云Windows server 2008服务器搭建VPN 图文教程(超详细) 第一步:购买阿里云服务器,本文使用的是Windows Server 2008 R2 企业版64位中文版 IP地址:47.88.151.129,所属节点:亚太(新加坡) 服务器配置:2核,4GB,带宽10Mbps 第二步: 打开服务器管理器,点击添加角色,如下图: 本帖隐藏的内容然后弹出如下图所示,点击下一步: 点击后,如下图,勾选网络策略和网络服务,然后点击下一步: 接着继续点击下一步,直到弹出如下图所示的页面,勾

Win7x64中使用VS调试WEB项目报“ORA-06413: 连接未打开”错误解决方法

错误描述 普通Web项目,Web项目在32位系统上跑的好好的,一点问题没有. 使用VS内置的开发服务器调试,页面能正常启动,但一连接数据库就报“ORA-06413: 连接未打开”错误. 使用IIS Express或IIS服务器,启动时报错:HTTP 错误 500.21 - Internal Server Error,处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”. 在上述问题解决后,又报一个错误:

Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法

当我们在做项目过程中,一遇到显示图片时,就要考虑图片的大小,所占内存的大小,原因就是Android分配给Bitmap的大小只有8M,试想想我们用手机拍照,普通的一张照片不也得1M以上,所以android处理图片时不得不考虑图片过大造成的内存异常. 那时候只是简单地缓存图片到本地 然后将图片进行压缩,但是感觉这个问题没有很好的解决办法,只是减小了发生的几率 这里,我将前辈们解决的方法重新整理一番,方便自己以后使用. 1.在内存引用上做些处理,常用的有软引用.强化引用.弱引用 import java