问题标签 [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 投票
0 回答
53 浏览

java - 在 pax-web 中添加全局 EventListener

org.ops4j.pax.web.service.WebContainer具有registerEventListener(java.util.EventListener, org.osgi.service.http.HttpContext)允许例如注册会话侦听器的方法。

问题是,它只为给定的 HttpContext 注册侦听器,通常是调用包的上下文。因此,我无法为 JAXBPublisher 注册的休息频道注册会话侦听器,因为我无法获取其 HttpContext。

是否可以注册全局EventListener

0 投票
1 回答
128 浏览

maven - 找不到org.osgi:org.osgi.service.jaxrs:jar:1.0.0-SNAPSHOT

我想为 Pax-Web 分析 JAX-RS 的样本。

但是,我无法将其导入 Eclise 或使用 Maven 编译,因为找不到以下 maven 依赖项:

我试图找到库 org.osgi.service.jaxrs,但谷歌或 Maven 存储库没有成功......

这是什么图书馆?是改名的项目吗?如何让这些样品栩栩如生?

0 投票
1 回答
363 浏览

osgi - 规格:OSGi HTTP 白板和 ServletContextHelper

当多个包使用相同的 ServletContextHelper 时,我需要一些与 Http Whiteboard Specification 相关的 ServletContextHelper 行为的精确度

规范说:

Http Whiteboard 实现必须为每个 ServletContextHelper 服务创建一个单独的 ServletContext 实例。白板服务可以通过使用 osgi.http.whiteboard.context.select 属性与 Servlet 上下文助手相关联。如果未设置此属性,则使用默认的 Servlet 上下文助手。

如果我理解正确,所有使用相同 ServletContextHelper 引用的 Servlet 或过滤器都绑定到相同的“ServletContext”

然后 :

ServletContextHelper 的一些实现可以使用服务工厂来实现,例如从关联的包中提供资源,就像默认实现一样。因此,白板实现必须使用注册白板服务的包的包上下文来获取 Servlet 上下文帮助器。

所以如果一个bundle A用ServletContextHelper X注册了一个Servlet,而bundle B用同一个ServletContextHelper的引用注册了一个Filter,那么Servlet和Filter注册到同一个ServletContext,但是它们的init方法是用两个不同的实例来调用的ServletContext(为了以不同的方式实现 getClassLoader() 方法)?

此外,“默认” ServletContextHelper 的行为是什么?是否总是有一个“默认”的 ServletContextHelper 注册?它是在捆绑包之间共享还是捆绑包只有一个实例?

0 投票
1 回答
420 浏览

java - Pax Web 中的 Jetty 错误处理程序注册错误

我正在尝试将自定义错误处理程序注册到嵌入 Pax Web OSGi 容器中的 Jetty 8。我将以下基本 xml 配置添加到 jetty.xml 文件:

但是,在此配置后,Jetty 没有启动,并且我从日志文件中收到以下根本原因的错误消息:

似乎 Pax 使用其 JettyServerWrapper 包装了 Jetty 的 Server 类,并且无法使用来自 xml 配置的反射进行设置。当我深入研究 Jetty 源代码时,我发现这段代码与 xml 中的反射配置相关:

从 org.eclipse.jetty.xml.XmlConfiguration 的内部类 JettyXmlConfiguration :

从代码中可以看出,XmlConfiguration 的 set 方法只是尝试获取特定类型的方法,并不寻找父类。这就是为什么不能在自定义错误处理程序上设置 Pax 包装的服务器实例的原因。

因此,无法使用 xml 配置 Jetty。你有什么解决办法?

0 投票
1 回答
240 浏览

java - Pax-web、jetty 和 RewriteHandler 导致 404

在 pax-web (pax-web 6.0.3, jetty 9.3.14) 的 jetty.xml 中,我定义了这样的 RewriteHandler:

问题是每个 URL 都重写得很好,但是我得到了一个 404。我认为 ServletHandler 在链中的 Rewrite 之前,但是“insertHandler”调用会导致这个错误:

如何使 RewriteHandler 工作?

0 投票
1 回答
143 浏览

java - Are there examples of running Jetty 9.4 with JSP support or Pax Web with JSP support in a plain Equinox framework?

I am attempting to get Jetty 9.4 with JSP support running in our applications OSGI container. I've used the information at https://www.eclipse.org/jetty/documentation/9.4.x/framework-jetty-osgi.html to get jetty running and serving static pages. WHen I try accessing a JSP I get "java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer: Provider org.eclipse.jetty.apache.jsp.JettyJasperInitializer not a subtype" I"m looking for examples of running Jetty in a plain OSGI container to help me debug my configuration. I'd also be interested in examples of using Pax Web in an OSGI container. So far all the Pax Web doc I've found assumes your running in Karaf.

0 投票
0 回答
91 浏览

java - 如何在 OSGi-Framework karaf 中使用 Primefaces?

我想在karaf使用Primefaces。为此,我将karaf-war-examplepax-web-primefaces-example结合起来,并获得了一个可以在bitbucket找到的工作 karaf-feature 。

该示例工作正常,但是当我想使用任何其他 primeface 示例扩展项目时,例如clockThemeSwitcherPanel,它就无法正常工作。

到目前为止,我发现我需要添加 javax.annotations 作为依赖项。此编译正确,但在浏览器中未显示预期结果。也许缺少的视图被破坏了,因为 javax.annotations 没有添加到战争中的 lib 文件夹中。但是我手动将它添加到战争中并没有取得任何进展。

渲染是

Primefaces 错误渲染

但应该看起来像

Primefaces 正确渲染

我对 osgi 和 felix 不太熟练,以至于我不明白需要什么。我也有没有发生异常的问题,所以我没有提示我应该在哪里看。

0 投票
0 回答
91 浏览

servlets - 没有使用 osgi.service.http.whiteboard 模式调用 Servlet

目前我正在处理一个问题,如果内容类型格式无效(类型/子类型,其中缺少“/”),码头将响应发送回 400。我需要使用白板模式自定义错误消息(osgi.service. http.whiteboard)。我注册了一个错误页面模式为“400”的新 servlet,如下所示:

但是我面临的问题是:尽管从 Jetty 发送了错误代码“400”,但我的 servlet(ErrorServlet) 没有被调用来处理它。

0 投票
1 回答
247 浏览

java - 如何在 Jetty 中启用 SSL 调试?

我正在尝试解决 SSLHandshakeException,为此,我正在尝试启用 SSL 以调试模式,我尝试设置 -Djavax.net.debug=ssl 但它不起作用,记录器只给我有关类的信息 org .eclipse.util.ssl.SSLContextfactory 和 org.eclipse.util.ssl.X509,这是否意味着 Jetty 没有在其核心中使用 JSSE 实现?

我正在尝试以这种格式可视化日志:https ://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/ReadDebug.html

Jetty 使用 Pax Web 7.x 嵌入到一个包(Karaf OSGi 框架)中

谢谢您的帮助。

0 投票
0 回答
11 浏览

osgi - OSGi HTTP 白板静态欢迎文档

在 OSGi 标准模块(jar,而不是 wab)中,我公开了一些 Web 服务(使用 OSGi JAX-RS 白板)和使用的 index.html 静态文件@HttpWhiteboardResource(它本身与 OSGi HTTP 白板一起使用)。

除了一件愚蠢的事情之外,一切都运行良好:我无法从根目录提供我的 index.html 文件。(我想做 http://domain,而不是 http://domain/index.html)。

通常对此的解决方案是声明一个“欢迎页面”。唉, HTTP 白板的 OSGi 规范似乎不允许这样做。另一个(绝望的)解决方案是将 root 与 绑定@HttpWhiteboardResource.pattern,但它不起作用(似乎合乎逻辑,root 归白板所有)。

似乎pax web有一个非标准扩展的解决方法。但是,我使用的是Apache Felix http,并且在他们的代码或文档中找不到对欢迎页面的单一引用。而且我不想改变它,因为它需要在一个非常复杂的解决方案中进行大量测试。

那么有人知道用标准的 OSGi 东西还是 Felix 特定的东西来解决我的问题的方法吗?谢谢!