我在GlassFish服务器3.1.2上正确部署Web应用程序包(OSGi-fied WAR)时遇到了一些严重问题
当我将WAR部署为Web应用程序时,一切正常,我可以在浏览器中打开我的应用程序。
但除此之外,我还希望它能够在OSGi环境中运行。当我将WAR部署为OSGi包时(在--type=osgi
命令中使用选项asadmin deploy
),捆绑包正确安装到OSGi容器中,但这次GlassFish无法将其识别为Web应用程序 - 尝试在浏览器中打开我的应用时出现404错误(The requested resource () is not available.
)。
我找到this solution,但在我的情况下不起作用。
这是我的捆绑的清单:
Manifest-Version: 1.0
Webapp-Context: /ares-gui
Bundle-ClassPath: WEB-INF/classes
Bundle-Version: 0.0.0.unspecified
Tool: Bnd-1.50.0
Bnd-LastModified: 1332182568717
Bundle-Name: ares-gui
Bundle-ManifestVersion: 2
Created-By: 1.6.0_26 (Sun Microsystems Inc.)
Import-Package: javax.servlet;version="[3.0,4)",javax.servlet.http;ver
sion="[3.0,4)"
Bundle-SymbolicName: ares-gui
Web-ContextPath: /ares-gui
应用程序本身是一个简单的servlet,使用Servlet API 3.0中的WebServlet注释进行注释。
我也尝试过在网络中找到的其他示例WAB(例如this一个),我也遇到了同样的问题。
答案 0 :(得分:0)
GlassFish 3.1.2中此问题的解决方案是将org.osgi.framework.startlevel.beginning
配置文件中的glassfish3/glassfish/config/osgi.properties
选项设置为3.我还将glassfish.osgi.start.level.final
设置为4,因为我认为它应该更大价值比第一个选项,虽然我不确定是否需要这个。