简单的OSGI Web应用程序,用于jboss AS7



我是Web开发的新手,我想开发一个要部署在jboss AS7中的osgi Web捆绑包,任何人都可以告诉我它的目录结构是什么......我用谷歌搜索了很多,但找不到解决方案,我的目录结构如下所示

我的项目 --元信息信息 ----清单.mf --网络信息网 ------网络.xml 索引.html

网络.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JbossModule</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

清单.mf

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OsgiSample
Bundle-SymbolicName: osgiSample
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Web-ContextPath: /osgiSample
Webapp-Context: osgiSample

我可以部署...但收到错误 404

JBoss AS 7.1.1 不支持开箱即用的 WAB。以下信息隐藏在 JBoss OSGi 1.1.1 的用户指南中:

要在 AS7 中启用 OSGi Web 应用程序支持,您需要配置 这些功能

<capability name="org.ops4j.pax.web:pax-web-jetty-bundle:1.1.2"/>
<capability name="org.ops4j.pax.web:pax-web-jsp:1.1.2"/>
<capability name="org.ops4j.pax.web:pax-web-extender-war:1.1.2"/>

将这些行添加到standalone.xmlosgi子系统中,并将激活更改为eager

 <subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="eager">

然后 JBoss AS 将在启动期间下载并安装其他捆绑包。启动这些捆绑包后,将您自己的 WAB 复制到 standalone/deployments 并且应该部署它。

另请参阅此论坛帖子。 请注意,此 WAB 在侦听端口 8090(而不是 8080)的单独 servlet 容器 (Pax Web) 中运行。

另请注意,每次服务器重新启动时,这些额外的功能似乎都会再次下载。为避免这种情况,您可以手动下载额外的捆绑包(和传递依赖项)并在 $JBOSS_HOME/bundles 下安装它们:

org/ops4j/pax/web/jetty/main/pax-web-jetty-bundle-1.1.2.jar
org/ops4j/pax/web/extender/war/main/pax-web-extender-war-1.1.2.jar
org/ops4j/pax/web/jsp/main/pax-web-jsp-1.1.2.jar
org/eclipse/jdt/core/compiler/ecj/main/ecj-3.5.1.jar

然后将上述功能替换为:

<capability name="org.ops4j.pax.web.jetty"/>
<capability name="org.eclipse.jdt.core.compiler.ecj"/>
<capability name="org.ops4j.pax.web.jsp"/>
<capability name="org.ops4j.pax.web.extender.war"/>

最新更新