0

2 つの Mylyn 拡張機能 (AbstractRepositoryConnectorUi を拡張する com.xyz.mylyn.ui.MyRepositoryUi と、AbstractRepositoryConnector を拡張する com.xyz.mylyn.core.MyRepositoryConnector) を作成しました。私は通常、Eclipse 更新サイト オプションを使用して、これらのカスタム拡張プラグインをインストールします。

これらのカスタム プラグインをインストールする前に、前提条件に依存する Mylyn プラグイン、つまり Mylyn Task List、Mylyn Task Focused Interface、および Mylyn Wikitext も正常にインストールしました。インストール時に、拡張した Mylyn クラスを含む次の 2 つの jar が、Eclipse ワークスペースのプラグイン フォルダーの下に正しく存在することがわかります。

1] org.eclipse.mylyn.tasks.core_3.6.0.v20110608-1400.jar 拡張された org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector を含む

2] org.eclipse.mylyn.tasks.ui_3.6.2.v20110826-0100.jar 拡張された org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi を含む

以下は、私が作成したuiプラグインのplugin.xmlファイルです-

'<?xml version="1.0" encoding="UTF-8"?>'
'<?eclipse version="3.2"?>'
'<plugin>'
'<extension point="org.eclipse.mylyn.tasks.ui.repositories">'
'<connectorCore class="com.xyz.mylyn.core.MyRepositoryConnector"'
'id="com.xyz.mylyn.core.myrepositoryconnector"'
'name="My Repository Connector"'
'type="My"/>'
'<connectorUi brandingIcon="images/connectionsmall.gif"'
'class="com.xyz.mylyn.ui.MyRepositoryUi" id="com.xyz.mylyn.ui.myconnectorui"'
'name="Connector UI" overlayIcon="images/mobius.gif"/>'
'<taskListMigrator class="com.xyz.mylyn.ui.MyTaskListMigrator"/>'
'</extension>'
'<extension'
'point="org.eclipse.mylyn.tasks.ui.editors">'
'<pageFactory'
'class="com.telelogic.synergy.integration.mylyn.ui.editor.MyTaskEditorPageFactory"'
'id="com.ibm.rational.synergy.integration.mylyn.ui.editor.mytaskeditorpagefactory">'
'</pageFactory>'
'</extension>'
'</plugin>'

ただし、カスタムプラグインをインストールすると、次のエラーが発生します-

!ENTRY org.eclipse.mylyn.tasks.ui 4 0 2013-03-22 14:50:46.117
!MESSAGE Repository connectors failed to load.
!SUBENTRY 1 org.eclipse.mylyn.tasks.ui 4 0 2013-03-22 14:50:46.117
!MESSAGE Could not load connector core
!STACK 1
org.eclipse.core.runtime.CoreException: Plug-in com.xyz.integration.mylyn.ui was unable to load class com.xyz.mylyn.core.MyRepositoryConnector. at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:178)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
    at org.eclipse.mylyn.internal.tasks.ui.util.TasksUiExtensionReader$ConnectorDescriptor.createConnector(TasksUiExtensionReader.java:95)
    at org.eclipse.mylyn.internal.tasks.ui.util.TasksUiExtensionReader.initConnectorCores(TasksUiExtensionReader.java:327)
    at org.eclipse.mylyn.internal.tasks.ui.util.TasksUiExtensionReader.initStartupExtensions(TasksUiExtensionReader.java:245)
    at org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin.start(TasksUiPlugin.java:583)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
        ...
        ...

which is caused by the following exception - 



Caused by: java.lang.NoClassDefFoundError: AbstractRepositoryConnector
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:632)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:607)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:568)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
    at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
    ... 112 more
Caused by: java.lang.ClassNotFoundException: AbstractRepositoryConnector
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

eclipse ワークスペースのプラグイン フォルダーで利用できる依存 Mylyn ライブラリーが、classloaded によってロードされない理由がわかりません。

どんな指針も大いに役立ちます。

ありがとう、アディティア

4

1 に答える 1

0

これらのプラグインが解決/インストールされていない可能性があります。以下を使用して確認してみてください。

次のことを試してください: コンソール ビューを開き、コンソールの [コンソールを開く] コンテキスト メニューから [ホスト OSGi コンソール] を選択し、次のように入力します。

ss org.eclipse.mylyn.tasks.core

ホスト コンソールの OSGi パネルで

プラグインが存在しない場合は、mylyn を再インストールしてみてください。RCP または PDE を使用する場合は、このプラグインを必要なプラグインに追加する必要があります。

ディストリビューションが無効である可能性もあります。dropins フォルダーを使用し、dropins フォルダーからいくつかのプラグインを更新すると、発生する可能性があります。

また、com.xyz.integration.mylyn.ui プラグインを com.xyz の依存関係に追加します...

于 2013-04-09T14:20:43.977 に答える