我正在嘗試爲我正在使用的項目中使用的技術生成示例應用程序。具體來說,我想創建一個實現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
讓我知道的信息,其他部分可能是有用的,和我我會盡量讓他們可以向社區提供。