我使用spring-roo创建了一个域模型,它大量使用了Spring和AspectJ。我的模型很好地部署为OSGi包,从Spring STS(基于eclipse)的IDE,我可以调用实体类等。
我需要从Eclipse RCP / RAP应用程序访问这些域类,这个项目我保留在正常的Eclipse 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)
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
也许你应该尝试不要将Roo项目构建为jar,而是从你的RCP项目中引用这个项目。