当前位置: 首页 > 知识库问答 >
问题:

OSGI上的AspectJ LoadTimeWeaving

龚远
2023-03-14

我想使用aspectJ加载时间编织(没有Sp

以下是捆的装载顺序:

[org.eclipse.equinox.weaving.hook::1 -> INSTALLED]
[org.aspectj.runtime::11 -> INSTALLED]
[org.aspectj.weaver::12 -> INSTALLED]
[org.eclipse.equinox.weaving.aspectj::13 -> INSTALLED]
[com.common-calculations_2.11::19 -> INSTALLED] //here I used aspects
[com.instrumentation_2.11::48 -> INSTALLED] //here I defined the aspects 
Done installing bundles
Starting bundles...
[org.eclipse.equinox.weaving.aspectj::13 -> ACTIVE]
[org.aspectj.runtime::11 -> ACTIVE]
[org.eclipse.osgi::0 -> ACTIVE]
 FRAGMENT Bundle - skip starting: org.eclipse.equinox.weaving.hook
 FRAGMENT Bundle - skip starting: org.aspectj.runtime
[org.aspectj.weaver::12 -> ACTIVE]
 FRAGMENT Bundle - skip starting: org.eclipse.equinox.weaving.aspectj
 Bundle started: [com.common-calculations_2.11::19 -> ACTIVE]
 Bundle started: [com.instrumentation_2.11::48 -> ACTIVE]

我想知道我应该如何启动钩罐?我将感谢任何帮助……p.s.有人通过将捆绑包“org.eclipse.osgi”和片段“org.eclipse.equinox.weaving.hook”作为“具有链接内容的二进制项目”导入他的工作区,解决了他的问题,但我不确定如何做到这一点:https://www.eclipse.org/forums/index.php?t=msg

感谢您的回复

共有1个答案

於功
2023-03-14

有一次,当我在铁路交通管制应用程序的工作中遇到这个问题时,我在我的博客上写了一篇关于这个主题的更大的文章。它仍然运行其核心功能的各个方面 - 不仅用于调用跟踪,还用于JPA和线程安全方面的自动资源和事务处理等(所以我知道该解决方案在我以前的项目中仍然适用于现实生活):

http://ballmerpeak.web.elte.hu/devblog/setting-up-aspect-oriented-programming-with-equinox-osgi-and-ajdt.html

自包含的示例代码提供了吉斯

https://github.com/prenex/equinox_osgi_skeleton

我也添加我们的电子邮件的内容,如果可能他

“嗨!

很久以前,当我研究这个主题时,但它肯定对我们来说效果很好,并且仍然是基于插件的铁路交通控制应用程序的一部分。

针对您的问题:

1.) 你有没有把 equinox.weaving.hook bundle 放在 core org.eclipse.osgi bundle 附近?在我上次处理它时,有一些不太明确的东西,比如这个要求,这就是为什么我把它写在一篇博客文章中。您是否尝试了以下链接中的示例代码?

https://github.com/prenex/equinox_osgi_skeleton

我将首先尝试运行这个示例项目

请看下面的commit,看看我在一个通用的equinox osgi skeleton项目中做了什么更改来添加简单的AspectJ支持:https://github . com/prenex/equinox _ OSGi _ skeleton/commit/882d 7765 f 31 a3 fc 8 ee 136 e 88 b 689 FCE 116 a 73d 1 c

最好的问候, 理查德·蒂尔

PS.:你是怎么偶然发现我的博客的?我很高兴有人真正阅读了它,并发现它很有帮助,即使它不能完全解决他们所有的问题。:-)"

 类似资料:
  • 我已经创建了我的第一个OSGi服务,并试图将其部署到ApacheFelix上。之后,当我查看系统控制台时,我看到服务未激活,出现了一些问题: 因此,我查看了哪个jar包含这些包,这是来自spring-ws-core-2.1.2.RELEASE。jar,它也是一个OSGi包。我也部署了这个,但再次出现以下错误消息: 这也是一个依赖项,这次是spring-webmvc-3.2.17.RELEASE.j

  • OSGi 技术是面向 Java 的动态模型系统。OSGi 服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。 Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。 这些组件能够组装进一个应用和部署中。 OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。 为了最小化耦合度和促使这些耦合度可

  • 我们面临的最大问题是,我们无法找出如何构造项目C,以使其在项目A和B中都能正常工作。在项目A中,我们希望maven能像往常一样工作,并根据需要降低依赖项。但我们也希望在项目B(也许结合Nexus+Tycho??)中实现该功能。 我们应该如何解决这个问题。我还没有找到一个好的解决办法如何做这件事。我已经在maven中尝试了apache felix捆绑插件,但不能让它像我想要的那样工作。这是正确的解决

  • 我正在用Jersey 2开发一个应用程序。x和OSGI。为了注册jersey(ServletContainer)的endpoint,我使用osgi的HTTPService和Jetty 8的实现。x我想使用SSE(服务器发送事件),但不幸的是,当我使用实现它的服务时,它告诉我这不在Servlet上下文2中运行。奇怪的是,我使用的堆栈是servlet 3。x、 如果我使用SSE支持制作一个简单的ser

  • 问题内容: 我的OSGi项目中的每个捆绑软件都有自己的BundleActivator,我认为这很正常。这将传递当前的BundleContext,这对于获取服务引用和其他内容很有用。 但是,如何从包中的类中获取BundleContext?将其分配给BundleActivator中的公共静态字段很烂,并将其作为参数传递也很烂。有没有更聪明的方法? 问题答案: 您可以使用。 请参见FrameworkUt

  • 问题内容: 而不是将数据库操作分散在四个(osgi)包中,所有操作都在这里稍有不同。我想创建一个负责所有持久性问题的(简单)OSGi捆绑包。我觉得这并不像听起来那么简单,因为“每捆都有唯一的类加载器”。因此,如果有人知道这种问题的解决方案,我将非常感激。 问题答案: (如果您正在使用hibernate注释) 在通知Hibernate捆绑包有关注释类的信息后,保存所有Entities类加载器。 然后