2

我使用 spring-roo 创建了一个域模型,它大量使用了 Spring 和 AspectJ。我的模型很好地部署为 OSGi 包,并且从 Spring STS(基于 Eclipse)IDE 中,我可以调用实体类等。

我需要从 Eclipse RCP/RAP 应用程序中访问这些域类,并且我将这个项目保存在用于 RCP/RAP 开发的普通 Eclipse IDE 中(即它具有所有 PDE 工具)。我还添加了 STS 和 AspectJ 插件。

我将我的域包添加到目标平台,并使我的 Eclipse RAP 应用程序依赖它。当我运行 RAP 应用程序时,我可以看到我的域包部署在 OSGi 中(即它是活动的)。当我添加依赖项时,我还看到它存在于 PDE 编辑器中。

但是,当我尝试导入和使用任何域类时,我什么也得不到。我什至无法从我的 Java 文件编辑器中看到域包。

我尝试在我的 RAP 项目中添加 AspectJ 和 Spring 特性,但仍然没有。

此外,在运行 Eclipse RAP 应用程序时,一切都正常部署,但 RAP 应用程序除外,它会引发以下异常:

2010 年 3 月 2 日上午 2:44:58 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO:从 URL [bundleentry://168.fwk1096264275/META-INF/spring/applicationContext.xml] 加载 XML bean 定义异常在线程“SpringOsgiExtenderThread-2”中 java.lang.IllegalStateException: BeanFactory 未初始化或已关闭 - 在通过 org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:171) 处的 ApplicationContext 访问 bean 之前调用“刷新” org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:345) 在 org.springframework.osgi.extender.internal.dependencies.startup。org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:287) 上的 DependencyWaiterApplicationContextExecutor.fail(DependencyWaiterApplicationContextExecutor.java:401)。 DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:175) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener .java:718) 在 java.lang.Thread.run(Thread.java:637)401)在 org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java: 175) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) at java。 lang.Thread.run(Thread.java:637)401)在 org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java: 175) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) at java。 lang.Thread.run(Thread.java:637)287) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:175) .springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) 在 java.lang.Thread.run(Thread.java:637)287) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175) at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:175) .springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) 在 java.lang.Thread.run(Thread.java:637)springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) at java.lang.Thread.run(Thread.java:637)springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) at java.lang.Thread.run(Thread.java:637)

任何帮助将不胜感激。

4

1 回答 1

1

也许你应该尽量不要将 Roo 项目构建为 jar,而是从你的 RCP 项目中引用这个项目。

于 2011-02-21T05:42:10.180 回答