2013-08-24 17 views
10

Piszę plugin Eclipse za pomocą Eclipse RCP (Kepler). Wszystko działało dobrze do zeszłej nocy, nagle zacząłem dostawać wyjątki wskaźnika zerowego przy próbie przetestowania wtyczki. Oto snippit z stacktrace:Uruchamianie niepoprawnych wtyczek, brakujące wiązanie javax.xml.bind

!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$55.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$55.run(Workbench.java:2552) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

Aby spróbować i dowiedzieć się, co może się dziać poszedłem do konfiguracji startowej dla mojego wtyczki i kliknąć „Sprawdź poprawność wtyczek” i pojawia się następujący błąd:

org.apache.xmlrpc 
    Missing Constraint: Import-package: javax.xml.bind; version="0.0.0" 

missing constraint

Czy to może być powód, dla którego uruchomienie mój plugin zawodzi? Jeśli tak, jak mogę to naprawić?

Dziękuję

Odpowiedz

3

Możesz kliknąć prawym przyciskiem myszy na projekcie, przejdź do Uruchom jako -> Uruchom konfiguracje i plug-iny kartę. Tutaj kliknij przycisk Dodaj wymagane wtyczki, co powinno rozwiązać problem z walidacją automatycznie.

+7

Mam ten sam komunikat o błędzie dla plugin rozwoju w neonowych .2, a przycisk "Dodaj wymagane wtyczki" nie naprawił problemu. –

+0

@aro_tech Po prostu mam ten sam problem z Neonem. Może ma to związek z ostatnią aktualizacją do pewnej wtyczki – Justin

1

Jeśli próbujesz aplikacji RCP E4 z funkcjami, spróbuj dodać org.eclipse.e4.rcp do swoich zależności w panelu zależności produktu ->. I "dodaj wymagane". Który rozwiązał mój problem

+0

Czy "zależności produktu" oznaczają, że muszę użyć edytora pliku MANIFEST.MF wtyczki? (Nie mogę dodać tam zależności). Czy masz dodatkową definicję produktu/funkcji? – Stefan

3

Jeśli masz EclipseLink 2.5.2 zainstalowany, jest to znany bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=456174

Aby ustalić, aktualizacja do najnowszej wersji Korzystanie z tej witryny Aktualizacja: http://download.eclipse.org/rt/eclipselink/updates/ Wybierz nowszą wersję niż 2,5. 2

UWAGA: Musiałem usunąć zaznaczenie pola wyboru "Ukryj zainstalowaną wersję", aby zainstalować po dodaniu witryny aktualizacji, ponieważ wydawało się, że jest ona zainstalowana, chociaż pokazała, że ​​oprogramowanie NIE jest instalowane, gdy odznaczę to pole. Po zainstalowaniu nowszej wersji ponownym uruchomieniu Eclipse, a następnie: 1. Wybierz menu: Run -> Run Konfiguracje 2. Kliknij przycisk „Dodaj Wymagane Wiązki”

Powinno wszystko w porządku praca po tym

+0

Działa, dzięki! – salee

4

musiałem usunąć następujące wtyczki w moim konfiguracji rUN „Eclipse Application”, aby pozbyć się ostrzeżenia xmlrpc:

org.apache.xmlrpc 
org.eclipse.mylyn.bugzilla.core 
org.eclipse.mylyn.bugzilla.ui 
org.eclipse.mylyn.commons.xmlrpc 

ostrzeżenie xmlrpc już occures z

  • Fresh Download Eclipse RCP, Tlen
  • Nowy plugin utworzona za pomocą szablonu "Hello World, komenda"
  • Windows7

Ponieważ tlen kwestia xmlrpc nie występuje w konsoli, ale jak dodatkowe okno wyskakujące, które uważam za jeszcze bardziej denerwujące i mylące. Na wyświetlaczu konsoli następujące dodatkowe wyjście:

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. 

Could this be the reason why launching my plugin is failing?

Chyba nie.Moja wtyczka nie wydaje się być pod wpływem tych ostrzeżeń.

  • git ostrzeżenie można wyłączyć w preferencjach Eclipse Team, jak sugeruje sama ostrzeżenie.

  • slf4j ostrzeżenie mogą być rozwiązane poprzez usunięcie wtyczki ch.qos.logback.slf4j również zobaczyć multiple slf4j bindings in Eclipse RCP Plugin

Jeśli ręcznie zmienić wybór wtyczek, należy być ostrożnym i użyć Waliduj Wtyczki funkcji aby upewnić się, że nie tworzysz innych problemów z zależnościami.

Jeśli masz zainstalowane dodatkowe wtyczki, możesz zobaczyć jeszcze więcej ostrzeżeń, np. z 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' 

=> To trochę bałagan. Dlatego dobrym pomysłem może być skopiowanie "domyślnych" ostrzeżeń, które można zignorować. Wtedy łatwiej będzie sprawdzić, czy ostrzeżenie jest związane z twoją wtyczką/ostatnimi zmianami.

Edit

I złożony bug dla ostrzeżeń Checkstyle i dzięki Lars Ködderitzsch zostaną one rozwiązane w wersji 8.5.0: https://sourceforge.net/p/eclipse-cs/bugs/428/

+0

To faktycznie dotyczy mojej sprawy. Używam wersji Eclypse - Leon. Może to być przydatne dla niektórych innych osób. Dzięki, Stefan. – ClickBright