2013-01-16 47 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