我是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.xml
的osgi
子系统中,并将激活更改为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"/>