OSGI 怎么添加额外的jar包

时间:2023-01-03 09:24:53
已经有一个osgi的项目了  
但是我对它进行了更改  需要使用一些其他的jar包  
于是我把需要的jar包  build path 了   编写代码的时候不报错

可是一运行还是  java.lang.NoClassDefFoundError!!!!!!!!!!!

然后我在MANIFEST.MF中做了一些配置


Import-Package: javax.servlet;version="2.5.0",
 javax.servlet.http;version="2.5.0",
 javax.servlet.jsp;version="2.1.0",
 javax.servlet.jsp.jstl.core;version="1.1.2",
 net.sf.json,
 net.sf.json.filters,
 net.sf.json.groovy,
 net.sf.json.processors,
 net.sf.json.regexp,
 net.sf.json.test,
 net.sf.json.util,
 net.sf.json.xml,
 org.apache.activemq.command;version="5.2.0",
 org.apache.activemq.spring;version="5.2.0",
 org.springframework.jms.core;version="2.5.6.SEC01",
 org.springframework.jms.listener;version="2.5.6.SEC01",
 org.springframework.web.servlet;version="2.5.6.SEC01",
 org.springframework.web.servlet.mvc;version="2.5.6.SEC01",
 org.springframework.web.servlet.view;version="2.5.6.SEC01"
Web-ContextPath: demo
Bundle-ClassPath: WEB-INF/json/,
 .
Export-Package: net.sf.json,
 net.sf.json.filters,
 net.sf.json.groovy,
 net.sf.json.processors,
 net.sf.json.regexp,
 net.sf.json.test,
 net.sf.json.util,
 net.sf.json.xml


已经腻歪我两天了   求大侠指点迷津!!!!!!!!!!

2 个解决方案

#1


我看了你的manifest.mf文件,你根本没有声明你的jar在bundle-classpath里面
其实这样问题的解决方法有两个:
一个是在你的bundle-classpath里面声明,如果在里面声明,千万别在声明import-package里面出现
另外一个是:
把你依赖的jar转换为OSGI的bundle,这个有专门的工具可以帮你的,google即可。
然后使用import-bundle导入bundle,在import-package导入包!

#2


第二种方法不知道你说的是哪个工具

而第一种办法  我不知道该以怎样的格式书写   manifest.mf  文件

还有就是能麻烦你把一个例子写出吗  

比如说  添加WEB-INF/lib/json 下的各种jar包

#1


我看了你的manifest.mf文件,你根本没有声明你的jar在bundle-classpath里面
其实这样问题的解决方法有两个:
一个是在你的bundle-classpath里面声明,如果在里面声明,千万别在声明import-package里面出现
另外一个是:
把你依赖的jar转换为OSGI的bundle,这个有专门的工具可以帮你的,google即可。
然后使用import-bundle导入bundle,在import-package导入包!

#2


第二种方法不知道你说的是哪个工具

而第一种办法  我不知道该以怎样的格式书写   manifest.mf  文件

还有就是能麻烦你把一个例子写出吗  

比如说  添加WEB-INF/lib/json 下的各种jar包