问题标签 [pax]

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 回答
2058 浏览

eclipse - 集成 Eclipse RAP 和 OSGI/Spring-DM 插件,使用 Maven 构建

背景 我有一个项目,其中包含我的域模型和持久性代码(使用 Spring-ROO 创建)。我已将其更改为 OSGi 包,并使用 Maven(通过 PAX Construct 脚本)构建和部署它。这个捆绑包很好地部署到 Equinox,我可以访问各种服务等。

我还有一个 Eclipse RAP 插件/包,我想从中调用域包实现的服务/spring bean。这就是事情变得有趣的地方。

问题:

1) 如何设置由 Maven 构建的 Eclipse RAP 项目?我使用mvn eclipse:to-maven目标将我的 Eclipse RAP 目标平台的插件放入我的本地存储库,但是当我使用时:

我收到此错误:

[INFO] [pax:import-bundle {execution: default-cli}]
[INFO] 将 Eclipse UI 导入到 com.propertyselldirect.propsell.build:provision:pom:1.0.0-SNAPSHOT
[INFO] 添加 Eclipse UI 作为依赖项com.propertyselldirect:rap:bundle:1.0.0-SNAPSHOT
[INFO] ---------------------------------- --------------------------------------
[错误] 致命错误
[信息] ---- -------------------------------------------------- ------------------
[INFO] 版本对于 org.eclipse.core:runtime
[INFO] 为空 --------------- -------------------------------------------------- -------
[INFO] 跟踪
java.lang.NullPointerException:org.eclipse.core:runtime 的版本为空
在 org.apache.maven.artifact.DefaultArtifact.getBaseVersion(DefaultArtifact.java:390)

我也尝试过手动添加每个 Eclipse 运行时和 rap 依赖项,然后构建项目,但是当我部署到 OSGi(使用pax-provision)时,大多数 Eclipse RAP(和 org.eclipse.core.runtime)插件都没有激活。它们大多被列为INSTALLED.

2)或者,我是否应该使用 Eclipse PDE 来构建,然后将我的域插件(可能还有所有 Spring-DM 捆绑包)作为依赖项包含在内。在这种情况下,我将如何(自动)让 Eclipse PDE 访问那些将部署到我的 Maven 存储库的插件/捆绑包?我是否将它们手动安装到某个目标平台directoty,并使其成为我的 RAP 目标平台?(即因此具有添加了所有 Spring-DM 捆绑包的 RAP 目标平台)。

我还有很多问题,但现在这些就足够了。

任何指向网络上有用的文档/文章的指针都将受到欢迎。我用谷歌搜索,但没有发现任何特别有用的东西。

0 投票
1 回答
1966 浏览

jetty - 使用 pax web 在 OSGI 容器中部署 Web 应用程序时出错

您好,我正在尝试在 Felix 容器中部署 Web 应用程序。我已经使用我的 Web 应用程序完成了所有必需的配置,例如设置清单标头: Webapp-Context: Bundle-ClassPath: Bundle-Activator: Import-Package: Bundle-SymbolicName: 等等 我在相同的容器是:pax-web-service-0.6.0.jar pax-web-jsp-0.7.1.jar pax-web-extender-war-0.7.1.jar pax-logging-service-1.5.0.jar pax-logging-api-1.5.0.jar

尽管在 pax 网站上已经写到 pax-web-service 包含在 pax-war-extender 中,但似乎没有 pax-web-service 捆绑包,所有其他捆绑包都会受到影响。

我已经删除了其他 pax 捆绑包,例如 pax-web-extender-whiteboard-0.7.1.jar pax-web-jetty-0.7.1.jar,因为我没有看到它们的任何用处。

pax-web-jetty-0.7.1.jar 甚至无法启动。它具有无法从 PAX 提供的任何捆绑包中解析的依赖项。

我的浏览器显示:HTTP ERROR 403

访问 /adminmodule/ 时出现问题。原因:

禁止

由码头提供支持://


而控制台日志说:

[5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 在 org.mortbay.jetty.HttpConnection@1e94001 上请求 /adminmodule/ [5884890@qtp-16567002-0 - /adminmodule/] 调试组织。 ops4j.pax.web.service.internal.model.ServerModel - 匹配 [/adminmodule/] ... [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.model .ServerModel - 路径 [/adminmodule/] 匹配 {pattern=/adminmodule/.*,model=ResourceModel{id=org.ops4j.pax.web.service.internal.model.ResourceModel-2,name=,urlPatterns=[ /],alias=/,servlet=ResourceServlet{context=/adminmodule,alias=/,name=},initParams={},context=ContextModel{id=org.ops4j.pax.web.service.internal.model.ContextModel -1,name=adminmodule,httpContext=org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext@11710be,contextParams={webapp.context=adminmodule}}}} [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.HttpServiceContext - 使用 http 上下文 [org.ops4j 处理 [/adminmodule/] 的请求.pax.web.extender.war.internal.WebAppWebContainerContext@11710be] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - sessionManager=org.mortbay.jetty.servlet.HashSessionManager@19c6163 [5884890 @qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - session=null [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - servlet= [5884890@qtp-16567002- 0 - /adminmodule/] 调试 org.mortbay.jetty -chain=org.ops4j.pax.web.service.internal.model.FilterModel-3-> [5884890@qtp-16567002-0 - /adminmodule/] 调试组织。 mortbay.jetty - servlet holder= [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 调用过滤器 org.ops4j.pax。web.service.internal.model.FilterModel-3 [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.WelcomeFilesFilter - 应用欢迎文件过滤器... [5884890@qtp -16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.WelcomeFilesFilter - Servlet 路径:/ [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web。 service.internal.WelcomeFilesFilter - 路径信息:null [5884890@qtp-16567002-0 - /adminmodule/] INFO org.ops4j.pax.web.service.internal.HttpServiceContext - 获取资源:[/adminmodule.jsp] [5884890@ qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 搜索捆绑包 [com.cisco.zaloni.gwt.admin [1]] 以获取资源 [/adminmodule.jsp ],标准化为 [adminmodule.jsp] [5884890@qtp-16567002-0 - /adminmodule/] DEBUG org.ops4j.pax.web.extender.war。internal.WebAppWebContainerContext - 找不到资源 [5884890@qtp-16567002-0 - /adminmodule/] 信息 org.ops4j.pax.web.service.internal.HttpServiceContext - 找到资源:空 [5884890@qtp-16567002-0 - /adminmodule /] 调试 org.mortbay.jetty - 调用 servlet [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 搜索包 [com.cisco.zaloni. gwt.admin [1]] 用于资源 [/],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 找到资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应 /adminmodule/ 403HttpServiceContext - 找到资源:空 [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 调用 servlet [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web。 extender.war.internal.WebAppWebContainerContext - 为资源 [/] 搜索捆绑包 [com.cisco.zaloni.gwt.admin [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试组织.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应/管理模块/ 403HttpServiceContext - 找到资源:空 [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 调用 servlet [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web。 extender.war.internal.WebAppWebContainerContext - 为资源 [/] 搜索捆绑包 [com.cisco.zaloni.gwt.admin [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试组织.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应/管理模块/ 403资源 [/] 的管理员 [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应 /adminmodule/ 403资源 [/] 的管理员 [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应 /adminmodule/ 403

这真的很令人沮丧。

请帮忙。因为我是 OSGI 的新手。

劳尔

0 投票
1 回答
522 浏览

maven-2 - maven:获取依赖项详细信息(Equinox)

Maven 和 Equinox 的新手。在阅读有关 OSGi 的教程时,我发出了以下命令。

pax-供应

这给出了以下错误。

似乎 Equinox 构建在存储库中不可用。所以
1. 在哪里寻找具有正确版本的存储库。有任何命令或搜索工具吗?
2.我看了,我可能可以在本地安装它,用下面的命令

如何获取所有这些参数(组 id、artifactId 等)?

0 投票
3 回答
19465 浏览

java - 以编程方式启动 OSGi(Equinox)?

我希望能够轻松启动 OSGi 框架(最好是 Equinox)并从 java main 加载我的 pom 中列出的任何包。

这可能吗?如果是这样,怎么做?

似乎 pax 工具会这样做,但我似乎找不到任何说明这一点的文档。我知道我可以像这样启动 Equinox:

但我想做更多——就像我说的:加载更多的包,也许启动一些服务,等等。

0 投票
2 回答
912 浏览

osgi - 无法在 Felix config.properties 中将 PAX-URL 的组装协议与自动启动的包一起使用

我正在尝试使用 PAX-URL,以便可以即时组装非打包的捆绑包。

如果我将 pax-url-assembly-1.2.1.jar 放在自动启动包中,然后输入

安装程序集:路径/到/我的/文件夹

一切正常。问题是,我想使用 > felix.auto.start.1=assembly:path/to/my/folder 在配置文件中给 felix 那些文件夹

如果这样做,我会收到“未知协议:程序集”异常。

我尝试在级别 1 加载 PAX-URL 并将所有其他捆绑包的默认启动级别设置为 10。不会有帮助。我认为是“系统包”本身在加载任何包之前读取配置,因此“程序集”不被理解。

我的猜测是我需要告诉 Felix 在 Felix 本身启动时加载 PAX-URL。

有任何想法吗?我是不是全都搞错了?:)

谢谢!

0 投票
1 回答
1028 浏览

java - PAX-URL:Felix 启动时的“Protocol not supported”

我正在使用 PAX-URL 从 Eclipse 启动基于 Felix 的项目。我使用组装协议来避免预先打包我的捆绑包。

在项目中,felix 使用 felix.jar 和一个 config.properties 启动,其中包括 felix.auto.start.1=assembly:foo/bar/classes 来启动我的解压包之一。

问题是,felix 直到完成读取该配置文件后才知道 pax-url 协议,所以我收到“未知协议:程序集”错误。

我究竟做错了什么?是否可以告诉 Felix 在启动时加载 pax-url?

谢谢!


这个问题解决了同样的 问题。它的询问方式为您提供了一种寻找解决方案的不同方式,因此我不会将此问题标记为重复。谢谢比约恩的小费!

0 投票
1 回答
86 浏览

bash - 镜像到转换后的文件结构

我想将一个文件结构同步到另一个文件结构,但转换了一个,例如:

有可能这样做rsync吗?我看到 rsync 接受文件列表作为输入(--files-from),但真的不知道如何为每个文件应用转换 T ......

换句话说,rsync 是否可以即时重命名文件?

谢谢你。

——</p>

例如, from src/to dst/,抑制bar/目标路径中的每一次出现,例如:

0 投票
1 回答
1019 浏览

java - 无法从 Karaf 2.2.0 OSGi 容器中的根上下文运行 WAR

我一直在努力让 Web 应用程序在 Karaf 2.2.0 的根应用程序上下文中运行(它在 Karaf 2.1.4 中运行良好)。我已经能够将问题隔离为使用 Tomcat 示例 WAR 很容易复制的问题。

  1. 从 Karaf 运行以下命令:

    osgi:install -s webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/anything

  2. 从您的网络浏览器访问应用程序 (http://localhost:8181/anything/index.html)

  3. 卸载示例包
  4. 使用以下命令使用根上下文路径重新安装包:

    osgi:install -s webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/

  5. 尝试从您的网络浏览器访问应用程序 (http://localhost:8181/index.html)

  6. 注意 404 错误。

查看日志,似乎当 Web 应用程序位于根应用程序上下文中时,它会在任何请求前添加“/default/”。例如,当尝试访问 /index.html 时,它会在 /default/index.html 中查找,找不到页面,并返回未找到错误(有关详细信息,请参阅下面的日志输出)。

有谁知道如何解决这个问题?


日志输出

0 投票
1 回答
537 浏览

c - PaX 和缓冲区溢出

在内核中有 PaX 的 linux 中是否有可能溢出缓冲区。我想通过使用正确的输入更改返回地址来利用可执行文件。我使用的是 Ubuntu 10.04,我用 paxtest 对此进行了测试,但我不知道结果意味着什么。这是我系统上 paxtest 的结果:

0 投票
2 回答
327 浏览

java - 加快 PAX(OSGI 测试)框架的技巧

我知道 PAX 正在做很多事情,创建容器并复制所有这些 jar 并不便宜,但有任何提高性能的一般技巧。我有一些测试可以在几分之一秒的时间内在容器外执行,而在容器内则需要更长的时间。我主要使用 PAX 来验证我的清单是否准确,并且该捆绑包可以部署而不会丢失任何依赖项。我尝试过 Knopflerfish、Equinox、Felix,总的来说,它们对于准系统无容器运行来说相对较慢,几乎没有什么区别。