启动插件失败,缺少约束javax.xml.bind

问题描述 投票:14回答:5

我正在使用Eclipse RCP(Kepler)编写Eclipse插件。一切都工作正常,直到昨晚突然我尝试测试我的插件时开始得到空指针异常。这是stacktrace的一个snippit:

!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)

为了试图弄清楚可能会发生什么,我去了我的插件的启动配置并单击“验证插件”并得到以下错误:

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

这可能是启动我的插件失败的原因吗?如果是这样,我该如何解决?

谢谢

plugins eclipse-rcp constraints launching-application
5个回答
7
投票

您可以右键单击项目,转到“运行方式” - >“运行配置”和“插件”选项卡。点击Add add plug-ins按钮,这将自动解决您的验证问题。


6
投票

我不得不在运行配置“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”模板创建的新插件
  • Windows 7的

由于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. 

这可能是启动我的插件失败的原因吗?

我猜不会。我的插件似乎没有受到这些警告的影响。

如果您手动更改插件选择,请小心并使用验证插件功能,以确保您不会创建其他依赖项问题。

如果您安装了其他插件,则可能会看到更多警告,例如来自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/


3
投票

如果您安装了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.单击“添加必需的捆绑包”按钮

之后一切都会好起来的


1
投票

如果您正在尝试具有功能的RCP E4应用程序,请尝试将org.eclipse.e4.rcp添加到产品 - >依赖关系窗格中的依赖项。并做“添加所需”。这解决了我的问题


1
投票

尝试不同的东西后:我做了:

帮助>安装新软件

并添加了此存储库:http://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/repository取自轨道:https://download.eclipse.org/tools/orbit/downloads/drops/R20190226160451/

选择与.javax,xml流相关的那些

它对我有用。 Eclipse Modeling Tools版本:2019-03(4.11.0)获胜10

© www.soinside.com 2019 - 2024. All rights reserved.