Запуск плагина не удается, отсутствует ограничение javax.XML.связывать
Я пишу плагин Eclipse, используя Eclipse RCP (Kepler). Все работало нормально до прошлой ночи, когда я начал получать исключения нулевого указателя при попытке проверить мой плагин. Вот фрагмент stacktrace:
!ENTRY org.eclipse.ui.workbench 4 2 2013-08-24 08:36:17.616
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
!STACK 0
java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.getLastMigration(MigrationSupport.java:229)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.baseChangedSinceLastPresentationOfWizard(MigrationSupport.java:190)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationSupport.performMigration(MigrationSupport.java:69)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.AutomaticUpdateScheduler.earlyStartup(AutomaticUpdateScheduler.java:89)
at org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.Workbench.run(Workbench.java:2552)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
java.lang.NullPointerException
at org.eclipse.core.internal.runtime.InternalPlatform.getLog(InternalPlatform.java:354)
at org.eclipse.core.runtime.Plugin.getLog(Plugin.java:291)
at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:830)
at org.eclipse.ui.statushandlers.StatusManager.logError(StatusManager.java:285)
at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:200)
at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231)
at org.eclipse.ui.statushandlers.StatusManager$StatusManagerLogListener.logging(StatusManager.java:305)
at org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(RuntimeLog.java:160)
at org.eclipse.core.internal.runtime.PlatformLogWriter.logged(PlatformLogWriter.java:100)
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:86)
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:205)
at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:178)
at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
at org.eclipse.core.internal.runtime.PlatformLogWriter.logging(PlatformLogWriter.java:43)
at org.eclipse.core.internal.runtime.RuntimeLog.log(RuntimeLog.java:96)
at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:71)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
at org.eclipse.ui.internal.Workbench.run(Workbench.java:2552)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
чтобы попытаться выяснить, что может происходить, я пошел в конфигурацию запуска для моего плагина и нажал "проверить плагины" и получил следующую ошибку:
org.apache.xmlrpc
Missing Constraint: Import-package: javax.xml.bind; version="0.0.0"
может ли это быть причина, почему запуск моего плагина терпит неудачу? Если да, то как это исправить?
спасибо
4 ответов
вы можете щелкнуть правой кнопкой мыши по своему проекту, перейти к Run as - > Run Configuration и вкладке Plug-ins. Здесь нажмите на кнопку Добавить необходимые плагины, и это должно решить вашу проблему проверки автоматически.
мне пришлось удалить следующие плагины в моей конфигурации запуска "Eclipse Application", чтобы избавиться от файла xmlrpc предупреждение:
org.apache.xmlrpc
org.eclipse.mylyn.bugzilla.core
org.eclipse.mylyn.bugzilla.ui
org.eclipse.mylyn.commons.xmlrpc
предупреждение xmlrpc уже происходит с
- свежая загрузка Eclipse RCP, Oxygen
- новый плагин, созданный с помощью шаблона "Hello World, Command"
- Windows7 на
поскольку Oxygen проблема xmlrpc не возникает в консоли, а как дополнительное всплывающее окно окно, что я нахожу еще более раздражающим и запутанным. Консоль показывает следующие дополнительные выходные данные:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://555.fwk1347294617:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://555.fwk1347294617:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
08:49:41.650 [Worker-1] INFO c.g.t.t.d.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
!SESSION 2017-09-04 08:49:32.846 -----------------------------------------------
eclipse.buildId=4.7.0.I20170612-0950
java.version=1.8.0_144
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments: -product org.eclipse.platform.ide
Command-line arguments: -product org.eclipse.platform.ide -data D:\eclipse\workspace/../runtime-EclipseApplication -dev file:D:/eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog
!ENTRY org.eclipse.egit.ui 2 0 2017-09-04 08:49:41.847
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\eis'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
может быть, это причина, по которой запуск моего плагина терпит неудачу?
Я думаю, нет. Мой плагин, похоже, не зависит от этих предупреждений.
на git предупреждение может быть отключен в настройках команды Eclipse, как следует из самого предупреждения.
в slf4j предупреждение может быть решена путем удаления плагина
ch.qos.logback.slf4j
, также посмотреть несколько Привязок slf4j в плагине Eclipse RCP
если вы вручную измените выбор плагина, пожалуйста, будьте осторожны и используйте проверить Плагины функция, чтобы убедиться, что вы не создаете другие проблемы зависимости.
если у вас установлены дополнительные плагины, вы можете увидеть еще больше предупреждений, например, от checkstyle:
!ENTRY org.eclipse.ui 2 0 2017-09-04 10:09:32.926
!MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points.
!SUBENTRY 1 org.eclipse.ui 2 0 2017-09-04 10:09:32.926
!MESSAGE Commands should really have a category: plug-in='net.sf.eclipsecs.ui', id='CheckstylePlugin.PurgeCaches', categoryId='net.sf.eclipsecs'
!ENTRY org.eclipse.ui 2 0 2017-09-04 10:09:33.622
!MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points.
!SUBENTRY 1 org.eclipse.ui 2 0 2017-09-04 10:09:33.622
!MESSAGE Commands should really have a category: plug-in='net.sf.eclipsecs.ui', id='CheckstylePlugin.PurgeCaches', categoryId='net.sf.eclipsecs'
=>это своего рода беспорядок. Поэтому было бы неплохо сделать копию предупреждений "по умолчанию", которые можно игнорировать. Тогда будет легче увидеть, связано ли предупреждение с вашим собственным плагином / последними изменениями.
редактировать
Я подал ошибку для предупреждений checkstyle, и благодаря Lars Koedderitzsch они будут разрешены с версией 8.5.0: https://sourceforge.net/p/eclipse-cs/bugs/428/
Если у вас установлен EclipseLink 2.5.2, то это известная ошибка:https://bugs.eclipse.org/bugs/show_bug.cgi?id=456174
чтобы исправить, обновите до последней версии с помощью этого сайта обновления:http://download.eclipse.org/rt/eclipselink/updates/ Выберите более новую версию, чем 2.5.2
Примечание: мне пришлось снять флажок "скрыть установленную версию", чтобы установить после добавления сайта обновления, как казалось, что он был установлен, хотя он показал программное обеспечение не устанавливается, когда я снял флажок. После установки новой версии вы перезапускаете Eclipse, а затем: 1. Выберите меню: Выполнить - > выполнить конфигурации 2. Нажмите кнопку "Добавить необходимые пакеты"
после этого все должно работать нормально
Если вы пытаетесь использовать приложение RCP E4 с функциями, попробуйте добавить org.затмение.Е4.rcp для ваших зависимостей в панели product -> dependencies. И сделать "добавить". Это решило мою проблему