Я унаследовал приложение, написанное в java для среды RCP (eclipse).Получение приложения RCP для запуска
Код поставляется в комплекте с системой сборки (maven) и файлами pom, и все, кажется, создается.
Окончательное приложение exe не может работать. Я получаю всплывающее окно с ошибкой, а затем ссылку на файл журнала, описывающий многочисленные ошибки. Проблема в том, что я очень новичок в RCP, я почти не знаю, что такое OSGI, и я не понимаю всех maven. Поэтому мне трудно понять, в чем проблема, или даже с чего начать.
Файл журнала начинается так:
ENTRY org.eclipse.osgi 4 0 2013-10-14 13: 38:! 14,717 СООБЩЕНИЕ Ошибка приложения СТЕК 1 java.lang.RuntimeException : Приложение «com.company.prod.app.rcp.application» не удалось найти в реестре . Приложения доступны: org.eclipse.equinox.app.error, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool. на org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp (EclipseAppContainer.java:242) на org.eclipse.equinox.internal.app.MainApplicationLauncher.run (MainApplicationLauncher.java:29) в орг. eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication (EclipseAppLauncher.java:110) на org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start (EclipseAppLauncher.java:79) в орг. eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:368) на org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:179) в sun.reflect.NativeMethodAccessorImpl.invok е0 (Родной метод) при sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) в org.eclipse.equinox.launcher.Main.invokeFramework (Main.java:559) по адресу org.eclipse.equinox.launcher.Main.basicRun (Main.java:514) по адресу org. eclipse.equinox.launcher.Main.run (Main.java:1311)
ENTRY org.eclipse.osgi 2 0 2013-10-14 13: 38: 14,751 MESSAGE Один или несколько расслоения не решаются, потому что следующие ограничения корня не разрешены:! SUBE NTRY 1 org.eclipse.osgi 2 0 2013-10-14 13: 38: 14.751 СООБЩЕНИЕ Комплект [email protected]/com.company.prod.app.data_2.0.5-SNAPSHOT.jar не был разрешен. SUBENTRY 2 com.company.prod.app.data 2 0 2013-10-14 13: 38: 14.751! СООБЩЕНИЕ Отсутствует импортированный пакет microsoft.sql_0.0.0.
ENTRY org.eclipse.osgi 2 0 2013-10-14 13: 38: 14,778 СООБЩЕНИЕ Ниже приведен полный список жгуты, которые не будут решены, см Входа до журнала для первопричину, если он существует:
Далее он перечисляет все пакеты в приложении, перечисленные в качестве версии 0.0.0. Я предполагаю, что номер версии имеет какое-то отношение к проблеме, поскольку у них, конечно же, нет версии 0.0.0.
Поиск по всем файлам pom.xml не будет отображать ни одну зависимость как версию 0.0.0.
Я не понимаю, откуда импортируется пакет microsoft.sql_0.0.0, упомянутый как причина «root». Я знаю, что в коде используется microsoft.sqlserver. Он импортируется в одном Java файл, например:
import com.microsoft.sqlserver.jdbc.SQLServerException;
И пакет, содержащий этот оператор импорта имеет microsoft.sqlserver в списке зависимостей, например:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc</artifactId>
<version>4.0</version>
</dependency>
Кроме того, есть " расслоение»где-то, что экспорт его, как это (?):
<Export-Package>
org.hsqldb.*,
com.microsoft.sqlserver.*
</Export-Package>
Так, мне кажется, будет экспортироваться и импортироваться правильно. Но я не понимаю, что это хорошо (или это ошибка osgi или rcp, даже не уверена).
Также. Я sqlserver.sqljdbc в моем хранилище Maven, по адресу:
.m2\repository\com\microsoft\sqlserver\sqljdbc\4.0
Любые намеки на то, как попытаться решить эту проблему будут оценены.