Jiraの新しいリスナーを作成しようとしています。私は実際にいくつかの助けと指導をいただければ幸いです。ClassloaderがTomcat 6の読み込みライブラリを発行します
背景 Apache TomcatでJira 4.2.2 Enterprise WARを実行しています。これは、Webアプリケーション/ JIRA/WEB-INF/libの下に、次のjarファイルが含まれています
* slf4j-api-1.5.8.jar
* slf4j-log4j12-1.5.8.jar
私たちは、プラグインとして動作します単純なクラスを持っています。それはイベントを受信し、イベントのタイプに基づいて、いくつかの作業を行います。このクラスは、ロギングにslf4jを使用し、期待どおりに動作します。クラスはjarにパッケージ化され、webapps/jira/WEB-INF/libの下にデプロイされ、そこから使用されます。これをリスナーとして追加し、構成し、ログにinitメッセージを表示することができます。すべてのロギングはslf4jを介して行われ、動作します。 com.atlassian.util.concurrent.LazyReference $ InitializationException:我々は試してみて、サードパーティのライブラリーから、当社のプラグインに機能を追加すると
は、我々は次の例外を受け取ります。java.lang.NoClassDefFoundError:ORG/SLF4J/LoggerFactory
私たちがこのサードパーティのライブラリと呼んでいるクラスでslf4jが利用可能であり、私が間違ってやっていることや、呼び出しが行われたときにこれを利用可能にする方法を理解していません。私たちのコードでは
作業する場合
次のように、我々はロガーを作成します。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.3rdparty.login;
public class JiraSampleListener extends AbstractIssueEventListener implements IssueEventListener {
private final static Logger logger = LoggerFactory.getLogger(JiraSampleListener.class);
.
.
.
私たちは、その後、期待メッセージが私たちに表示されます
logger.warn("MESSAGE")
を呼び出すことにより、これを使用することができますログ。
newThing = new 3rdPartyClass("name of thing");
例外
com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
上の任意のアドバイス:
とすぐに私たちは、このクラスに次のコードを追加するとエラーケース
は、我々は、添付の例外を受け取りますこれを解決するか、私がここで間違っていることへの指針は、大いに感謝するでしょうd!例外の
充実ビューは...
2011-01-19 05:30:51,016 main ERROR [com.atlassian.jira.ComponentManager] Error occurred while starting component 'com.atlassian.jira.event.DefaultListenerManager'. com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:148) at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:111) at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:89) at com.atlassian.jira.event.DefaultListenerManager$Listeners.start(DefaultListenerManager.java:93) at com.atlassian.jira.event.DefaultListenerManager.start(DefaultListenerManager.java:38) at com.atlassian.jira.ComponentManager.quickStart(ComponentManager.java:256) at com.atlassian.jira.ComponentManager.start(ComponentManager.java:212) at com.atlassian.jira.upgrade.ConsistencyLauncher.launchConsistencyChecker(ConsistencyLauncher.java:63) at com.atlassian.jira.upgrade.ConsistencyLauncher.contextInitialized(ConsistencyLauncher.java:42) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at 3rd.party.3rdPartyClassDefaultImpl.(3rdPartyClassDefaultImpl.java:101) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at 3rd.party.3rdParty.(3rdParty.java:107) at 3rd.party.3rdParty.(3rdParty.java:83) at 3rd.party.3rdParty.(3rdParty.java:67) at my.organisationlisteners.JiraSampleListener.init(JiraSampleListener.java:36) at com.atlassian.jira.event.ListenerFactory.getListener(ListenerFactory.java:33) at com.atlassian.jira.event.DefaultListenerManager$Listeners.loadListeners(DefaultListenerManager.java:126) at com.atlassian.jira.event.DefaultListenerManager$Listeners.create(DefaultListenerManager.java:71) at com.atlassian.jira.event.DefaultListenerManager$Listeners.create(DefaultListenerManager.java:66) at com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create(ResettableLazyReference.java:143) at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:316) at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:142) ... 32 more Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 46 more
にSLF4Jとlog4jwrapperを移動する瓶、その後、他のアプリケーションのものなし長い仕事。 – Anonymouslemming
'CATALINA_HOME \ lib'と同じクラスの問題です。あなたがslf4jを動かすことができないなら、サードパーティのlibを 'web-inf \ lib'に移動してみてください –