私の FishEye 用プラグインは、Active Directory にアクセスし、FishEye 用のいくつかの機能を実装できるようにする必要があります。プラグインは X 分ごとにディレクトリとの同期を行う必要があるため、SAL スケジューラに基づいています。com.sun.jndi.ldap.LdapCtxFactory を使おうとしたところ、REST プラグインでしか動作しないことがわかりましたが、SAL で使用すると、クラスローダーを再定義してもこのクラスがロードされません。とにかく、Spring LDAP を使用して機能を再実装し、プラグインを FishEye にデプロイしようとすると、次のようになりました。
2014-12-03 23:12:03,010 ERROR [ThreadPoolAsyncTaskExecutor::Thread 9 ] org.springframework.osgi.extender.internal.activator.ContextLoaderListener DefaultOsgiBundleApplicationContextListener-onOsgiApplicationEvent - Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.mycompany.fisheye.ldap-restriction-plugin, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/osgi]
Offending resource: URL [bundle://84.0:0/META-INF/spring/atlassian-plugins-component-imports.xml]
Ok。私はグーグルで見つけましたhttps://developer.atlassian.com/docs/faq/troubleshooting/dependency-issues-during-plugin-initialisation競合を回避するために、依存関係の範囲を提供 に変更する必要があると書かれています。わかりました、私はそれを作りました。しかし、今は別の例外があります:
Exception in thread "PluginSchedulerTask-com.mycompany.fisheye.LdapRestrictio nComponentImpl:job" java.lang.NoClassDefFoundError: org/springframework/ldap/core/support/LdapContextSource
spring-ldap-core-1.3.2.RELEASE.jar を $fisheyeDir/lib に配置しようとしましたが、何も起こりません - ブートローダーはこの JAR を取得しません。
この状況で何ができるか知っている人はいますか?別の LDAP フレームワークを使用する必要がありますか? または、これらの LDAP クライアントの実装をクラスパスに押し込むことは可能ですか?
FishEye バージョン 3.6.1 (最新)、クラスパス バージョン 3.0.5.RELEASE へのスプリング jar。私の spring-security-ldap 依存関係も 3.0.5.RELEASE です。
前もって感謝します。