首页 > 解决方案 > 如何开发、构建和部署多个基于 OSGi 的 Web 应用程序

问题描述

我正在寻找一种方法来开发、构建和部署多个基于 OSGi 的 Web 应用程序(一些 RAP)。

首先,我使用从以下克隆的 RAP 示例:https ://github.com/eclipse/rap.git

releng/org.eclipse.rap.examples.build其中可以使用以下三个应用程序构建为战争文件:

mvn clean verify

生成的war 文件包括所有依赖项和OSGi 环境所需的Equinox servletbridge。
现在我可以复制war文件并将它们放入webapps应用程序服务器,例如tomcat:

rapdemo.war > http://127.0.0.1:8080/rapdemo/
workbench.war > http://127.0.0.1:8080/workbench/
controls.war > http://127.0.0.1:8080/controls/

这很好用,但是我如何在 Eclipse 中开发并使用Equinox servletbridge自动部署到 tomcat/jetty/... ?

我尝试使用 jetty maven 插件,将以下内容添加到 pom 文件中:

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>9.4.15.v20190215</version>
</plugin>

我在控制台中收到以下消息并且码头没有运行:

[INFO] 跳过 org.eclipse.rap.examples.rapdemo.product :不支持打包类型 [eclipse-repository] ​​...
[INFO] 跳过 RAP 演示示例构建:不支持打包类型 [pom]

也许我需要其他具有包装类型war和类似配置的 Maven 项目,如下所示:

<configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <webApp>
        <contextPath>/</contextPath>
    </webApp>
    <contextHandlers>
        <contextHandler
            implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext">
            <war>${project.basedir}/rapdemo/target/rapdemo.war</war>
            <contextPath>/rapdemo</contextPath>
        </contextHandler>
        ...
    </contextHandlers>
</configuration>

标签: javaeclipsemavenjakarta-eeeclipse-rap

解决方案


推荐阅读