2013-01-16 90 views
1

我试图在eclipse上部署osgi软件包& jboss 7.1上的jboss工具。在包的开始时,JBoss抛出一个ClassNotFoundException的在我的插件(激活)Jboss 7.1,Eclipse 4,2和OSGI - 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束。日食和Jboss - OSGI出了问题。有没有人知道哪里出了问题?

UPDATE1: 罐子看起来像:

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

您能否列出JAR中的文件树层次结构?这将有助于他人回答您的查询。 – CuriousMind

+0

更新了我的问题。添加jar文件的文件树层次结构。 – moohkooh

+0

MANIFEST.MF拼写正确吗?我纠正了你问题中的拼写。 – artbristol

回答

0

我遇到这是由包括本清单中的

Bundle-ClassPath: . 

解决了类似的问题好像有时它会工作罚款没有它,但有时没有,从来没有想过一个,但我总是包括它这些天。

0

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

+0

import-package已经包含它,正确的 – eis

+0

将jboss读为7 doc,它表示“用户依赖关系 - 这些依赖关系是通过jboss-deployment-structure.xml或通过Dependencies:manifest条目添加到模块或通过Class-路径:用于jar文件。“最好使用Class-Path:这里,而不是import-package。 – lwpro2

+0

这是非osgi依赖关系。应始终使用标准的osgi头指定OSGi依赖关系,这意味着import-package。 – eis