无法在GlassFish上部署Web应用程序包

时间:2012-03-19 21:43:50

标签: java-ee glassfish osgi war

我在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一个),我也遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

GlassFish 3.1.2中此问题的解决方案是将org.osgi.framework.startlevel.beginning配置文件中的glassfish3/glassfish/config/osgi.properties选项设置为3.我还将glassfish.osgi.start.level.final设置为4,因为我认为它应该更大价值比第一个选项,虽然我不确定是否需要这个。