问题标签 [pax-web]

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.

0 投票
2 回答
766 浏览

servlets - 无法将过滤器注册到我的包中的 CXF 包

我在使用 Pax Web Whiteboard 服务向javax.servlet.Filter通过 CXF 注册的正在运行的 JaxRS 端点注册 a 时遇到问题。我尝试了几种不同的方法,即将过滤器注册为服务,并使用 org.ops4j.pax.web.service.WebContainer 直接注册过滤器。

对于我的测试,我启动了 karaf,并安装了 pax-web、webconsole、cxf 和 pax-web 白板服务。我注册了一个带有蓝图的捆绑包:

但是,永远不会调用此过滤器。我已经尝试使用 servlet 名称和 urlpatterns,甚至尝试使用 urlpattern /* 然后我尝试了一种稍微不同的方法,从蓝图中删除服务声明,并通过蓝图的 init 方法直接添加过滤器:

正如日志语句所反映的,该方法确实被调用了,但仍然没有执行过滤器。

那么我完全错了这是如何工作的?我的“应用程序”实际上只是注册到 CXF servlet 的一个端点。这部分正在工作,我可以调用其中定义的 REST 服务。但无论我做什么,过滤器都没有执行。我在这里使用一些我不太了解的库(Servlets/Filters、Pax-Web 和 Writeboard 扩展器)我不知道为什么这不起作用?我的猜测是每个包都有不同的httpcontexts,我不能简单地在我自己的测试包中为另一个包(CXF)注册一个过滤器。

如果这是真的,有人可以告诉我如何正确解决这个问题吗?我可以得到 CXF 捆绑包 bundlecontext 并将过滤器注册到那个,但这似乎是一个可怕的可怕黑客。如果不是这样,有人可以告诉我为什么这不起作用吗?

0 投票
1 回答
622 浏览

java - 如何将 Apache Karaf / Jetty / Pax-Web 默认路径从 / 更改为 your-custom-path/?

我有一个 Karaf 安装,里面有一些 .war 文件。它们中的每一个都可以通过 hostname:port/individual-context-path 获得。

如何将 hostname:port/ 调用(实际上给出 404)重定向到给定的上下文路径?

哪些文件定义了码头/卡拉夫“根路径”?

0 投票
1 回答
50 浏览

pax-web - CSS 在 PaxWeb Http 白板中不起作用

我在 Apache Karaf 中使用 PaxWeb Http Whiteboard 服务;虽然一切正常,但我无法正确呈现某些 CSS 样式 - 例如,

这应该显示一个下拉圆圈,但是当托管在 PaxWeb 中时,尽管 css 已加载;它不呈现内容。虽然它在 chrome 中显示方形框,但在 Firefox 中;它只是在一个方框中显示数字 f364。

请注意,当我在 NodeJS 中托管我的网站时,这有效。

我的蓝图和这里给出的一样。

有人可以解释为什么没有正确渲染 css 吗?

谢谢文卡特什·拉古杜瓦

0 投票
5 回答
1552 浏览

java - 码头、websocket、java.lang.RuntimeException:无法加载平台配置器

我尝试在 Endpoint 中获取 http 会话。我遵循了这个建议https://stackoverflow.com/a/17994303。这就是我这样做的原因:

这就是我得到的

我使用 osgi、jetty 9.3.11 和 pax-web 6.0.0。

0 投票
1 回答
1523 浏览

java - 无法启动 Pax-web

我正在通过框架实现 Felix 5.4 玩 OSGi。目前我想在 OSGi 框架上安装一个应用程序服务器作为一个包。我看过 Pax-web,这对我来说似乎是完美的解决方案。但是,在成功启动所有必需的捆绑包后,该软件抱怨以下错误:

通过查看错误,似乎某些 Jetty 配置在 pax-embedded jetty 版本中不可用。特别是maxErrorDispatches,blockingTimeoutpersistentConnectionsEnabled导致错误。但是,即使注释掉这 3 个属性,pax-web 也不会启动(无法连接到 127.0.0.1),并且在一些日志之后,只会打印:

org.ops4j.pax.web.pax-web-jetty-bundle[org.ops4j.pax.web.service.internal.ConfigurationImpl]:读取配置属性 org.ops4j.pax.web.config.url 失败

我试图解决这个问题,但由于我不是 OSGi 和 Jetty 的专家,所以我想不出任何解决方案。为了给我的场景添加一些上下文,这里有一些额外的信息:

  • 我正在使用 felix 5.4;
  • 我使用的是 Windows 10 64 位;
  • jetty.xml i在conf/、bin/felix文件夹同目录下;
  • 发射费利克斯通过java -jar bin\felix.jar

安装的捆绑包:

config.properties(从评论中删除):

码头配置(无注释):

0 投票
1 回答
63 浏览

apache-karaf - 开发时如何将restful bundle热更新到karaf

大家,我遵循了 karaf 指南,bundle:watch 命令和远程调试都可以,但是当我在一个带有 restful 服务的 web 项目中发出 mvn clean install 命令时,karaf 无法更新捆绑包,这是错误:

所以问题是如何在开发时热更新一个宁静的网络包?

0 投票
1 回答
191 浏览

logging - Pax-Web retainDays 无法正常工作

我正在尝试在我的 pax-web 配置中启用 retainDays 选项,如下所示:

我正在使用org.ops4j.pax.web.pax-web-jetty (1.1.17)嵌入在我的 ServiceMix 5.1.4 中的 pax-web 版本 1.1.17 ( )。

但是,当我重新启动服务时,码头似乎没有启动。

由于官方文档提到了其他一些选项,我也尝试添加org.ops4j.pax.web.log.ncsa.extended = true,但它没有任何效果。

事实上,在文档中,没有解释如何使用 retainDays (我有时读过retaindays并尝试过小写)以及 option 的目的是什么org.ops4j.pax.web.log.ncsa.extended

关于如何启用retainDays选项的任何想法?

更新:

让我完全困惑的是JIRA 中的这个新功能请求,其中提到了一个 fixVersion: 1.1.0,它不如我的“甚至旧”版本 1.1.17。

0 投票
1 回答
37 浏览

osgi-bundle - 如何在 PAX-EXAM 中测试 OSGi SOAP 包?

我可以使用 PAX-EXAM 测试普通捆绑包,但我不能用于 OSGi SOAP 捆绑包,它在激活 OSGi SOAP 捆绑包之前会引发错误:

我正在使用 PAX-EXAM,还有其他方法可以测试 SOAP OSGi 捆绑包吗?

0 投票
0 回答
355 浏览

websocket - 如何在 PAX-Web 中注册 JSR-356 Websocket?(在捆绑包中,不是 WAR)

我对 PAX-Web 有疑问。我尝试将 Websocket 服务注册为声明性的,但无法从 Web 访问它。我已经尝试了给定的 websocket-jsr356-6.0.3.war,它工作正常。正如我所看到的,WAR 文件对 org.osgi.service.http.HttpContext 的处理方式不同。我尝试了以下场景:

场景 1 - OSGi R6 白板 HTTP 方法

创建一个 ServletContextHelper:

并添加 Websocket 端点:

日志显示端点已被捕获。我已经调试并且 Pax-Web 正在注册它。

日志显示以下行:

但是无法通过以下 URL 访问 websocket:ws://localost:8181/test/chat/testroom

场景 2 - 注册的 HttpContext 上的 Pax-Web 属性(使用 JAX-RS 可以工作)

创建 HttpContext 实例:(利用 OSGi 给定的 Helper 抽象类):

和 Websocket 端点:

但是无法通过以下 URL 访问 websocket:ws://localost:8181/test/chat/testroom

我怎样才能实现 webcsocket 可用?我不想将我的捆绑包重新打包为 WAB。有什么办法吗?

0 投票
2 回答
378 浏览

java - 使用 pax-web 发布 JAX-RS 端点

我使用javax.ws.rs注释在 OSGi 容器 (Karaf) 中发布了 REST 端点。HttpService 由 pax-web 创建,jax-rs 服务由com.eclipsesource.jaxrs/publisher.

为了使用这个发布者,伪造了一个非常可怕的功能(从互联网的某个地方复制):

它通常可以工作,但是当我尝试按照 wiki 中的描述注册事件侦听器时,从未调用过该侦听器。另一个问题是功能中以“幻数”作为起始级别的库数量,以及平台升级的潜在问题。

pax-web 是否具有发布 jax-rs 端点的机制,我可以使用它来代替伪造的功能?我需要激活什么才能发布我的端点?