问题标签 [wab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-applications - 如何在 Tapestry 中使用 OSGi 服务
我有我的 Tapestry Web 应用程序,它为某些数据集提供完整的 CRUD 功能。到目前为止,我一直在使用模拟来开发和测试它。
但是,我现在需要用 OSGi 服务(使用 Felix 运行)替换该模拟。
我的主要问题/问题是:
- 我是否需要将 OSGi 服务注入到我的挂毯应用程序中,如果需要,该怎么做?
- 假设它是注入的,有没有关于如何使用它的实践?我应该调用这些方法或类似的任何特殊方法吗?
- 在我调用了我需要的方法之后,我是否需要对它做一些事情,还是自动完成?
- 我需要担心吗
HttpService
(我看了一些关于它的抱怨,但不太明白)
为您提供一些背景信息,这就是我现在的做法
例如,我想要替换MyDao dao
为提供相同功能的 OSGi 服务,以便我可以在onPrepareForRender
方法中使用它。
我可以放心地假设与该服务关联的 OSGi 包已经在运行。
应用程序的其余部分作为 OSGi 应用程序制作。我在我的 pom.xml 中添加/更改了一些东西(maven-bundle-plugin,按照http://www.javabeat.net/2011/11/writing-an-osgi-web-application/中的说明添加了一些清单条目)。
但是,它仍然不起作用。
顺便说一句,我正在尝试将我的 WAR 转换为 WAB。
先感谢您 :)
编辑:从 WAR 转换和部署到 WAB 时出现问题
当我将我的网络应用程序打包为war
东西时,效果很好。但是,当我将它打包为bundle
,并尝试在 GlassFish 中部署它时,我收到以下错误消息:
部署期间发生错误:没有安装的容器能够处理此应用程序管理员战争。有关详细信息,请参阅 server.log。
当我转到 server.log 时,它是这样说的:
osgi - 在 WAB(OSGI) 中将 jar 转换为包有什么用?
在探索了 OSGi 框架之后,我开发了一个示例 Web 应用程序。Web 应用程序包(.war 或 .jar)被打包在一个 eba 中。war 文件在其目录中包含一堆嵌入的 jar 文件。这些WEB-INF/lib
jar 已(using maven-bundle-plugin
根据 jar 之间的关系转换为 OSGi bundles 以及所需的导出和导入包。现在我什至不得不提到(WEB-INF/lib)
bundle-classpath 中的所有这些 jar。上述工作是因为一个包(wab 也是一个包)可以在其中包含一个或多个 jarfile,并使用 Bundle-Classpath manifest.mf 条目指向它们。
如果我没有在 bundle-classpath 中包含 jar,我会得到一个ClassNotFoundException
.
问题是,那么将 jars 转换为 osgi bundles 是没有意义的。显然,其中的所有 jarsWEB-INF/lib
都是由同一个类加载器(即 wab 的类加载器)加载的,所以我们没有获得 OSGi 的主要好处,这主要是一个每个捆绑类加载器概念?
eclipse-virgo - 处女座工具是否积极维护?
Virgo 工具将 Web 应用程序包的最大动态 Web 模块版本限制为旧的 2.5
看来我的 Virgo 服务器版本(3.6.2)正在使用 Tomcat 7,它能够管理更新的 servlet 规范(我需要 3.0)
我开始认为 Virgo 工具不像 Virgo 服务器那样活跃。事实上,工具文档谈到了 Juno 和 Indigo 版本,而 Kepler 将在 5 天内被替换为稳定版本
Virgo 工具是 Eclipse 中针对 Virgo 服务器进行开发的常用方法吗?
它们是否被用户/开发人员慢慢遗忘了?
drop-down-menu - Scout Eclipse RAP 智能领域
我在 scout eclipse 中的 RAP 应用程序中遇到智能字段问题。
我的问题在于查找调用,因为在 RAP 上(并且仅在 RAP 上)有时在用户更改搜索文本时不会更新选择。当用户单击搜索窗口或按向上或向下键时,我会刷新它,但这很烦人。
当我调试它时,我看到代码被执行并且新值被“返回”(在 LookupService 中),但是没有包进入浏览器。
java - 当我在不使用 web.xml 的情况下在 BundleActivator 中注册 Servlet 时,“transport-guarantee”的等价物是什么?
我在 OSGI 环境中运行 Servlet,具体来说,我将 Karaf 与 Pax Web / Jetty 一起使用。
我很高兴使用 BundleActivator 来实例化 servlet 并将它们注册到 HttpService。我喜欢它的地方在于,它为我提供了一种通过连接 ServiceTracker 来处理依赖注入的非常简单的方法。
但是,对于某些事情,我只能找到有关如何通过经典 web.xml 配置进行设置的文档。具体来说,我错过了transport-guarantee
指令的等效项,即告诉 HttpService 在某些 URL 上,它应该坚持使用 HTTPS 并在必要时重定向客户端的方法。
或者,如果我可以web.xml
像往常一样使用描述符文件,但仍然可以通过一种方便而简单的方式将 servlet 连接到我的 OSGi 服务,我会接受的。
html - Node.js 设置属性已检查网页中的选择
我现在正在学习 node.js。我面临一个问题,我从 index.html 页面获取数据,我想在第二页上发送几个值,例如 .... 已选择一个选项。在这种情况下,我该怎么做:不要更改第二页上的任何内容。
谢谢
java - 从 Eclipse 产品/启动配置中导出 WAB
在我的团队中,我们正在开发 Web 应用程序的 Java 后端。我们使用 OSGi。
到目前为止,在最初的开发阶段为了简化事情,我们使用 Jetty 作为 servlet 容器,为了部署到测试服务器,我们简单地导出了我们的 eclipse 产品(所有东西都捆绑在一起)并运行相应的 .exe 文件。
我们使用 OSGi 是为了模块化和解耦。在这个特定场景中,我们对动态安装/卸载捆绑包不感兴趣,因此 Eclipse 产品将所有内容捆绑在一起并一次性部署它非常方便。
现在我们想从 Jetty 迁移到 GlassFish,这意味着我们需要以不同的方式打包我们的包。据我所知,WAB 对我们来说是正确的。例如看到这个:
基本上,[WAB 是] 带有 OSGi 捆绑清单的 Web 应用程序。因此,整个 Web 应用程序可以作为单个 OSGi 包部署在任何支持 WAB 的框架上。从技术上讲,bundle 可以作为 Web 应用程序部署到 Servlet 容器。但它可以访问 BundleContext。这允许 Web 应用程序与在同一框架中运行的其他包或 Web 应用程序进行互操作。
https://stackoverflow.com/a/11345694/285091
理想情况下,我们希望转到我们的 .product 文件(或启动配置)并从那里导出 WAB,因为我们已经拥有所有必要的捆绑包和适当的设置(自动启动设置和启动级别)。然而,这似乎是不可能的——是吗?
请注意,获取“根”捆绑包并仅打包它及其依赖项不会完成这项工作,因为按照该过程不会打包其他捆绑包。例如,在我的工作区中,我有:
在哪里:
com.example.something
是一个包含 2 个实现的 API 包:com.example.something.impl.a
com.example.something.impl.b
com.example.root
取决于com.example.something
但不取决于它的任何实现- 我们真的跑了
com.example.something.impl.b
,从来没有com.example.something.impl.a
如果我们尝试只打包root
及其依赖项,我们会错过impl.b
所以,基本上:假设我们已经有一个启动配置/eclipse产品,其中包含我们想要为我们的服务器端应用程序设置的确切包设置,有没有办法产生相应的WAB?如果没有任何直接的方法,并且考虑到我们不使用 maven(排除了maven-bundle-plugin),那么接下来最好的方法是什么?
java - OSGi 与 OSGi WAB 捆绑
我对开发 OSGi 包和 OSGi WAB 有点陌生。我正在使用 Jboss AS 7.1 服务器,我应该在其中同时使用 OSGi 包和 WAB。我对 WAB 的依赖很少是 OSGi 包,包和 WAB 都在我服务器的“部署”文件夹中。当我部署我的 WAB 时,它会在“WEB-INF/lib”中查找依赖项。如何包含 WAB 文件之外的依赖包而不在“WEB-INF/lib”中添加这些包?
提前致谢。
编辑:
我按照此链接中提供的步骤操作:
http
://www.rpgnextgen.com/wiki/doku.php?id=vaadin_7.4_osgi_web_application
我成功创建了 WAB 文件。我将所有必要的 Vaadin 依赖项部署为我的服务器中的“部署”文件夹下的 OSGi 包。当我部署我的 WAB 文件时,“deployments”文件夹下的 Vaadin 依赖项不包括在内,但 WAB 文件正在“WEB-INF/lib”路径中查找 Vaadin 依赖项。下面是我正在使用的 pom.xml。
基本上,我要做的是创建一个 WAB 项目,该项目使用其他包作为依赖项,而不是在 .war 文件中使用“WEB-INF/lib”。
当我将war文件部署到服务器时,我最终得到以下异常:
web - 如何在 karaf 重新部署 war 或 wab 时保持我的 Web 应用程序处于活动状态?
目前我正在使用 GWT 开发一个 Web 项目,并且我使用 karaf 作为容器,我安装了 karaf war 功能并成功部署了我的 war,它运行良好。但是,当我重新编译我的 GWT 项目并创建一个新的战争以部署到 karaf 时,我的 Web 应用程序在新战争部署时离线,有没有办法让我的应用程序保持活动状态并在新 WAR 部署时为请求提供服务?
jsf - JSF Web 应用程序作为 OSGi 包 - 收到错误 FacesContextFactory 配置不正确
我正在尝试将我的 JSF 应用程序转换为 OSGi Bundle (WAB),但是当我将 war 文件部署到 glassfish/autodeploy/bundles 时,我一直收到以下错误,我不太确定这意味着什么。
我的war
文件结构如下:
我的web.xml
样子是这样的:
我的glassfish-web.xml
样子是这样的:
我MANIFEST.MF
的是这样的: