1

我试图在 Jboss 7.1 上部署一个带有 eclipse 和 jboss 工具的 osgi 包。在捆绑包启动期间,jboss 在我的插件(激活器)上抛出 ClassNotFoundException

Caused by: java.lang.ClassNotFoundException: testjboss.Activator from [Module       "deployment.TestJboss:1.0.0.qualifier" from Service Module Loader] 

如果我用eclipse(导出->可部署插件和片段)将插件导出到jboss的部署文件夹并启动jboss,插件将毫无例外地在Jboss上启动。OSGI-Bundle 很简单,只包含“Activator”类。

我的清单:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: TestJboss
Bundle-SymbolicName: TestJboss
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: testjboss.Activator
Import-Package: org.osgi.framework
Bundle-RequiredExecutionEnvironment: JavaSE-1.6

我的 build.properties:

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
           .

没什么特别的,简单的 OSGI-Bundle。eclipse 和 Jboss - OSGI 出了点问题。有人知道出了什么问题吗?

更新1:罐子看起来像:

jbosstest.jar
|--- META-INF
     |---MANIFEST.MF
|--- testjboss
     |---Activator.class
4

2 回答 2

0

我遇到了一个类似的问题,通过在清单中包含这个问题得到了解决

Bundle-ClassPath: .

似乎有时没有它它会正常工作,但有时不会,从来没有想过,但这些天我总是把它包括在内。

于 2013-03-12T12:31:26.943 回答
0

对于 Jboss 7,它使用模块化类加载器。您需要在 manifest 或 jboss-deployment-structure.xml 中将依赖项指定为 org.osgi.framework

于 2013-06-10T03:51:22.093 回答