问题标签 [spring-dm]

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 投票
1 回答
233 浏览

apache-camel - ApacheCamel + ActiveMQ 到 JBOSS Fuse,最好的方法是什么?

我已经ApacheCamel+ActiveMQ启动并运行了大约 8 条不同的路线。当我们有 2 条路线时,它开始很好。路由的数量正在增长(目前为 10 个),添加新路由的过程涉及更新现有路由代码、测试、部署等。我真正想要的是ESB在不影响其他包/服务的情况下可以安装、启动、停止或卸载包/服务。我做了一些研究,JBOSS Fuse似乎是我们实现上述目标的正确选择。我确实有几个问题,希望你们能帮助我:

  1. 从哪儿开始?有没有我可以遵循的类似的好例子或教程?
  2. 所有路线目前都在一个Spring项目下。是否应该将它们分成单独的捆绑包(使用Spring-dm)?即每条路线一捆
  3. JBOSS Fuse 是正确的选择ESB吗?
0 投票
1 回答
73 浏览

service - 如何在 OSGI 中启动 Spring DM 服务消费者

我开始使用 Spring DM 创建一个 OSGI 项目。我创建了两个捆绑包,第一个捆绑包 (bundle1) 提供了一个更改接收字符串顺序的服务。第二个(bundle2)使用该服务并在控制台中打印结果。服务实现:

服务提供者的spring文件:

bundle1-osgi.xml

bundle1-context.xml

消费者 :

消费者的弹簧文件:bundle2-context.xml

bundle2-osgi.xml

该服务已被很好地注册引用和发现。但是,即使我通过 start 命令显式启动它,消费者也不会打印任何东西。

提前感谢,

0 投票
3 回答
8036 浏览

spring - 在 Java 中创建微服务的正确路径是什么?Spring Boot 或 OSGI

我找到了一本书“Spring DM in action”。当我开始查看 Spring for OSGI 的最新版本时,我发现 Spring 已经停止了这个项目。

由于我有一些在 Spring 中开发的经验,我想了解我应该继续阅读 Spring 和 OSGI 还是切换到 Spring Boot 作为创建模块化应用程序的方式?

0 投票
1 回答
266 浏览

spring - 我在哪里可以找到最新的 Spring DM Maven 原型?

昨晚我尝试创建新的 spring-osgi-bundle-archetype。

起初我发现 Spring 2.5.x 提供了 1.2.1。创建后我尝试编译一个空项目。该过程以找不到 log4j.osgi 的错误结束。

我的问题是:“是否有一些 Maven 原型可以访问 Spring 3.2.4,这似乎是支持 OSGI 的最新版本?”

我读到 Spring DM 成为 Gemini 蓝图,但找不到任何示例如何将它们组合在一起。

0 投票
1 回答
1004 浏览

spring - OSGi 服务引用不适用于构造函数注入

我有一个捆绑包 (A),它将 Hibernate 事务管理器导出为 OSGi 服务,服务接口为PlatformTransactionManager.

在另一个包 (B) 中,我定义了对该 OSGi 服务的引用。Bundle B 定义了一个 bean,ReservationDao,它以PlatformTransactionManager为构造函数参数。构造函数用 标记@Autowired

当应用程序上下文加载时,有时(经常)会抛出以下错误:

基本上,自动装配失败是因为没有可用的PlatformTransactionManager. 现场注入也会发生同样的错误。

如果我创建 setter 方法并用 标记它们@Autowire,则应用程序上下文会正确加载。

谁能解释为什么构造函数和字段自动装配可能会失败,但设置器自动装配总是成功?有没有办法以所有自动装配工作的方式定义 OSGi 引用?我不想围绕框架的限制重构代码。

0 投票
1 回答
2127 浏览

jetty - 获取 java.lang.ClassNotFoundException:org.eclipse.jetty.servlet.listener.IntrospectorCleaner

我在 OSGi 和 spring-dm 环境中使用 Jetty 作为嵌入式 Web 服务器。我所有的包和战争文件都已成功部署。但是,我在日志中观察到以下警告:

尽管此警告不会影响任何功能,但我仍然很想知道为什么会发生此错误。通过很少的调试,我可以看到任何模块都没有导入包“org.eclipse.jetty.servlet.listener”。我明确将此导入添加到 jetty-webapp 和 spring-osgi-web 捆绑包中,但这也无济于事。

0 投票
0 回答
137 浏览

osgi - 一个 OSGi Bundle 从另一个 Bundle 加载 CamelContext

我有几个 OSGi 包(比如 A、B 和 C)。这些包中的每一个都有自己的使用 Spring DM XML 文件定义的 Camel 路由。

我想通过在每条路线的开头添加窃听器来监控每条路线。例如,窃听器会将数据发送到不同捆绑包中定义的路由(比如 Z)

在 bundle Z 中,我会在一个名为camelContext.xml. 它的位置META-INF/spring如下:

在单独的包中定义此路由的原因是因为我不想在包 A、B 和 C 中重复此操作。所以我希望我可以导入此路由定义(在包 A、B 和 C Camel 上下文文件中)使用Spring DM 导入语句,如下:

当我在 Karaf 中部署包 A、B、C 和 Z 时,它抱怨找不到camelContext.xml文件。

我以正确的方式接近这个吗?

谢谢。

0 投票
1 回答
336 浏览

osgi - 使用 Spring-DM 导入 o​​sgi 服务时发生死锁

这个问题与使用 spring-dm 导入 o​​sgi 服务时发生的死锁有关(有时如下所述)。

我最近在 Spring-DM 的 ServiceDynamicInterceptor 类中遇到了这个导致死锁情况的问题。当从两个包加载两个应用程序上下文时会发生这种情况。假设 app ctx A 导出一个 osgi 服务,app ctx B 导入从 A 导出的 osgi 服务。当两个包一起启动时会出现问题。当app ctx A被初始化时,spring在发布osgi服务的过程中同步调用为该服务注册的监听器。假设app ctx B同时初始化,osgi导入被执行。首先,它将 osgi 服务的侦听器添加到包上下文中,然后去查找 osgi 服务。正如侦听器被添加到捆绑上下文中一样,app ctx A 将其拾取并执行侦听器。此时,获取锁的app ctx B,尝试查找尚未发布的 osgi 服务,因为正在调用侦听器,该侦听器等待释放相同的锁,从而导致死锁。在 5 分钟内(默认)达到 spring bean 创建超时后,app ctx B 失败并出现由 ServiceUnavailableException 导致的 BeanInitializationException。

我已经列出了在两个线程中执行的代码。请注意,查找和侦听器都定义在同一个文件 - ServiceDynamicInterceptor 中。

应用 Ctx A 正在等待锁定

应用 Ctx B 正在等待 osgi 服务在

这有时会发生如我之前所说,当两个捆绑包一起重新启动时。然而,由于显而易见的原因,它并非每次都发生。我的问题是是否有任何方法可以避免这种死锁?

从线程转储中提取

应用 Ctx A

应用 Ctx B

0 投票
2 回答
779 浏览

spring - 我在哪里可以下载 Spring DM jar 文件?

实际上,我正在阅读有关 Spring Dynamic Modules 和 OSGi 的信息。他们都引用了 URL http://www.springsource.org/osgi来下载相关的库和 jar 文件。

正如您可以验证的那样,每次我单击此 url 时,都会出现以下错误页面:

在此处输入图像描述

所以我正在寻找替代方案,然后找到可以在这里找到的人员论坛https://forums.manning.com/posts/list/25280.page 在这个论坛中他们回答:

转到此页面:http ://www.springsource.org/download

最后,当我单击最后一个链接时,它被重定向到http://spring.io/projects站点,其中没有 Spring DM 的迹象。

我的问题是如何/在哪里可以下载最新版本的 Spring DM 库?

0 投票
1 回答
891 浏览

spring-mvc - 在 OSGi 容器中加载 spring dm

我正在尝试在我的 OSGi 包中加载 spring dm。我遵循了一个教程。我的目标是,对于特定的 URL,URL 应该由 spring 处理,而不是默认的 sling servlet。我部分成功地实现了这一目标。

有时,它不起作用。我的 globaldispatcher servlet 没有被初始化。问题是间歇性的。有时我的 spring servlet 被初始化得很好。但有时我会收到此错误:

Java版本:1.7.0_45

我正在使用教程中提到的以下依赖项:(都是 OSGi 包)

以下是我的 spring-osgi.xml 中的代码,它位于 META-INF/spring/ 文件夹中

下面是来自 META-INF\spring\spring.xml 的代码

以下是来自 WEB-INF/globaldispatcher 的代码

SlingConfiguration.java:

SlingContextLoader.java:

我的 SlingDispatcherServlet.java