问题标签 [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.
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 目标平台)。
我还有很多问题,但现在这些就足够了。
任何指向网络上有用的文档/文章的指针都将受到欢迎。我用谷歌搜索,但没有发现任何特别有用的东西。
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 的新手。
劳尔
maven-2 - maven:获取依赖项详细信息(Equinox)
Maven 和 Equinox 的新手。在阅读有关 OSGi 的教程时,我发出了以下命令。
pax-供应
这给出了以下错误。
似乎 Equinox 构建在存储库中不可用。所以
1. 在哪里寻找具有正确版本的存储库。有任何命令或搜索工具吗?
2.我看了,我可能可以在本地安装它,用下面的命令
如何获取所有这些参数(组 id、artifactId 等)?
java - 以编程方式启动 OSGi(Equinox)?
我希望能够轻松启动 OSGi 框架(最好是 Equinox)并从 java main 加载我的 pom 中列出的任何包。
这可能吗?如果是这样,怎么做?
似乎 pax 工具会这样做,但我似乎找不到任何说明这一点的文档。我知道我可以像这样启动 Equinox:
但我想做更多——就像我说的:加载更多的包,也许启动一些服务,等等。
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。
有任何想法吗?我是不是全都搞错了?:)
谢谢!
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?
谢谢!
这个问题解决了同样的 问题。它的询问方式为您提供了一种寻找解决方案的不同方式,因此我不会将此问题标记为重复。谢谢比约恩的小费!
bash - 镜像到转换后的文件结构
我想将一个文件结构同步到另一个文件结构,但转换了一个,例如:
有可能这样做rsync
吗?我看到 rsync 接受文件列表作为输入(--files-from
),但真的不知道如何为每个文件应用转换 T ......
换句话说,rsync 是否可以即时重命名文件?
谢谢你。
——</p>
例如, from src/
to dst/
,抑制bar/
目标路径中的每一次出现,例如:
java - 无法从 Karaf 2.2.0 OSGi 容器中的根上下文运行 WAR
我一直在努力让 Web 应用程序在 Karaf 2.2.0 的根应用程序上下文中运行(它在 Karaf 2.1.4 中运行良好)。我已经能够将问题隔离为使用 Tomcat 示例 WAR 很容易复制的问题。
从 Karaf 运行以下命令:
osgi:install -s webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/anything
从您的网络浏览器访问应用程序 (http://localhost:8181/anything/index.html)
- 卸载示例包
使用以下命令使用根上下文路径重新安装包:
osgi:install -s webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/
尝试从您的网络浏览器访问应用程序 (http://localhost:8181/index.html)
- 注意 404 错误。
查看日志,似乎当 Web 应用程序位于根应用程序上下文中时,它会在任何请求前添加“/default/”。例如,当尝试访问 /index.html 时,它会在 /default/index.html 中查找,找不到页面,并返回未找到错误(有关详细信息,请参阅下面的日志输出)。
有谁知道如何解决这个问题?
日志输出
c - PaX 和缓冲区溢出
在内核中有 PaX 的 linux 中是否有可能溢出缓冲区。我想通过使用正确的输入更改返回地址来利用可执行文件。我使用的是 Ubuntu 10.04,我用 paxtest 对此进行了测试,但我不知道结果意味着什么。这是我系统上 paxtest 的结果:
java - 加快 PAX(OSGI 测试)框架的技巧
我知道 PAX 正在做很多事情,创建容器并复制所有这些 jar 并不便宜,但有任何提高性能的一般技巧。我有一些测试可以在几分之一秒的时间内在容器外执行,而在容器内则需要更长的时间。我主要使用 PAX 来验证我的清单是否准确,并且该捆绑包可以部署而不会丢失任何依赖项。我尝试过 Knopflerfish、Equinox、Felix,总的来说,它们对于准系统无容器运行来说相对较慢,几乎没有什么区别。