Как использовать объекты Spring-Roo из проекта Eclipse RCP / RAP - PullRequest
2 голосов
/ 02 марта 2010

Я создал модель предметной области, используя spring-roo, которая интенсивно использует Spring и AspectJ. Моя модель прекрасно разворачивается как пакет OSGi, и из среды IDE Spring STS (на основе затмений) я могу вызывать классы сущностей и т. Д.

Мне нужно получить доступ к этим классам доменов из приложения Eclipse RCP / RAP, и этот проект я храню в обычной Eclipse IDE для разработки RCP / RAP (т. Е. В ней есть все инструменты PDE). Я также добавил плагины STS и AspectJ.

Я добавил свой домен в целевую платформу и сделал свое приложение Eclipse RAP зависимым от него. Когда я запускаю приложение RAP, я вижу, что мой комплект доменов развернут в OSGi (т.е. это ACTIVE). Я также вижу, что он существует в редакторе PDE, когда я добавил зависимость.

Однако, когда я пытаюсь импортировать и использовать любой из классов домена, я ничего не получаю. Я даже не вижу пакеты домена из моего редактора файлов Java.

Я пытался добавить AspectJ и Spring nature в мой RAP-проект, но ничего не вышло.

Кроме того, при запуске приложения Eclipse RAP все развертывается нормально, кроме приложения RAP, которое выдает следующее исключение:

2 марта 2010 г. 2:44:58 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions ИНФОРМАЦИЯ: Загрузка определений XML-bean-компонентов из URL-адреса [bundleentry: //168.fwk1096264275/META-INF/spring/applicationContext.xml] Исключение в потоке "SpringOsgiExtenderThread-2" java.lang.IllegalStateException: BeanFactory не инициализирован или уже закрыт - вызовите функцию refresh перед доступом к bean-компонентам через ApplicationContext в 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) at java.lang.Thread.run (Thread.java:637)

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 21 февраля 2011

Возможно, вам следует попытаться не собирать проект Roo в jar, а ссылаться на этот проект из своего проекта RCP.

...