2015-03-02 45 views
0

我正在嘗試爲我正在使用的項目中使用的技術生成示例應用程序。具體來說,我想創建一個實現JAX-RS 2服務端點的OSGi Web應用程序包(WAB)。我正在通過RESTful Java和JAS-RS 2書籍(通過Bill Burke發佈一個鏈接,但我沒有足夠的聲望)爲概念JAX-RS服務做準備。在這一點上,我實施了第3章中列出的客戶服務。我已經多次審查了this網站,以及建立WAB的其他一些資源。我使用eclipse Luna和一個動態web項目,我已經添加了BND項目的性質。我將該項目導出爲.war以保持適當的WAR結構。我已經手動驗證了OSGi清單位於正確的位置並且包含正確的語句(即與IDE中的內容相匹配)。Glassfish 4中的JAX-RS 2和OSGi 4不工作

我的問題是,當我部署的文件到Glassfish的(我使用Glassfish的4)戰爭的話,deployss罰款,我可以訪問該服務。但是,因爲它沒有作爲OSGi包加載,所以我無法訪問其他OSGi包。

當我將該文件作爲OSGi包部署(類型:Other,OSGi checked)時,它部署正常,但似乎無法加載到Servlet容器中,因爲所有URL都返回404錯誤。

顯然,我只能發佈2個鏈接,和代碼段算作聯繫,所以我可以包括我的清單文件:

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: ShoppingApplication 
Bundle-SymbolicName: com.restfully.shop 
Bundle-Version: 1.0.0.alpha 
Bundle-ClassPath: WEB-INF/classes/ 
Bundle-Vendor: Perform Air International Inc. 
Bundle-RequiredExecutionEnvironment: JavaSE-1.8 
Web-ContextPath: /OrderEntry 
Export-Package: com.restfully.shop.services;uses:="javax.ws.rs.core,javax.servlet,org.osgi.service.event,org.osgi.framework" 
Import-Package: javax.servlet;version="[3.0.0,4.0.0)",javax.servlet.annotation,javax.servlet.http,javax.ws.rs.core,org.osgi.framework,org.osgi.service.event 
Bundle-Activator: com.restfully.shop.osgi.WebAppContextListener 

讓我知道的信息,其他部分可能是有用的,和我我會盡量讓他們可以向社區提供。

回答

0

您在導入包中有org.osgi.service.event。

從我所知道的情況來看,這在Glassfish 4.x中並不存在。我在嘗試部署例如駱駝核心OSGi包時,下面的錯誤...

ERROR: org.osgi.service.event,version=[1.3,2) -- Cannot be resolved