如何使用Eclipse RCP / RAP项目中的spring-roo实体

时间:2010-03-02 06:02:40

标签: eclipse spring aspectj spring-roo eclipse-rap

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

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

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

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

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

此外,在运行Eclipse RAP应用程序时,除了RAP应用程序之外,所有部署都很好,这会抛出以下异常:

  

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

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

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