Infinispan 8以降のいくつかの機能が必要です。したがって、私は最新のInfinispanのpomで私の会社のアプリケーションpom.xmlを更新しました。Jboss 6.4 Infinispan 8.2およびJGroups - ClassNotFoundException
これはかなり簡単でしたが、アプリはjgroups(またはdefault-configs/default-jgroups-udp.xmlのデフォルト設定 - この場所は以前のバージョンのinfinispanとは異なります)を使用しています。デフォルトのバージョンにはいくつかのパラメータ(およびJgroupsバージョン3.6からのXSD)があります - したがって、私はjgroupsを3.6.8.Finalにすることにしました。意図したバージョン(デフォルト設定の未知のパラメータについても不平を言わないバージョンですinfinispan 8.2)
でそうポンポンは以下の通りです:
<dependency>
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
<version>3.6.8.Final</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>8.2.0.Final</version>
</dependency>
とにかく - このアプリケーションは、桟橋と春ブートを使用して問題なく起動します。私はそれがどんなアプリケーションサーバーでも始まると確信しています。
しかし、私はJBoss 6.4で実行するしかありません。私の推測では、org.jgroups.logging.LogFactoryは何とかそれが実行されているされて発見することである
Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.remoting.transport.jgroups.JGroupsTransport.start() on object of type JGroupsTransport
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)
at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:859)
at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:628)
at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:617)
at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:542)
at org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:234)
... 141 more
Caused by: java.lang.ExceptionInInitializerError
at org.jgroups.conf.XmlConfigurator.<clinit>(XmlConfigurator.java:35)
at org.jgroups.conf.ConfiguratorFactory.getStackConfigurator(ConfiguratorFactory.java:62)
at org.jgroups.JChannel.<init>(JChannel.java:129)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:419)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:320)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannelAndRPCDispatcher(JGroupsTransport.java:366)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
... 146 more
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.jboss.as.clustering.jgroups.LogFactory from [Module "deployment.mymodule-5.0.0.0-SNAPSHOT.ear.appName.war:main" from Service Module Loader]
at org.jgroups.logging.LogFactory.<clinit>(LogFactory.java:31)
... 158 more
Caused by: java.lang.ClassNotFoundException: org.jboss.as.clustering.jgroups.LogFactory from [Module "deployment.mymodule-5.0.0.0-SNAPSHOT.ear.appName.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.jgroups.logging.LogFactory.<clinit>(LogFactory.java:28)
... 158 more
: があり、私は、展開中に、いくつかのjboss.asクラスを(これは一種の予期されない)を含む例外が発生しましたJbossを使用して、org.jboss.as.clustering.jgroups.LogFactoryを使用しようとしましたが、このバージョンのJbossにはありません。 (サーバーディレクトリEAP-6.4.0 \ modules \ system \ layers \ base \ org \ jgroups \ mainには、jgroupsバージョン3.2.Xが含まれています)。
Jboss 6.4では、このjgroupsバージョン(とInfinispan 8.2など)を使用するための注意がありますか?
これはjboss-deployment-structure.xmlファイルを操作できるようにearファイルですが、これまではJbossオリジナルのjgroupsを除外していましたが、これは役に立ちませんでした。
<exclusions>
<module name="org.jgroups"/>
</exclusions>
にJGroupsを設定することができますプロパティ 'JGroupsのに従います。 logging.log_factory_class' - それを 'org.jgroups.logging.Log4J2LogImpl'に設定できますか? (これにより、EAPロギングへの統合が無効になり、log4j2インプリメンテーションにはログが記録されますが、それは出発点になります...) –
実際、この問題は、プロパティがJGroupsのEAP内部バージョンのサーバーに設定されているため、あなたのアプリケーションバージョンのJGroupsがそれを手に入れました。次に、アプリケーションJGroupsはクラスパスにないEAP-JGroups統合クラスをロードしようとします。したがって、 'org.jgroups.extension'モジュールを依存関係として追加することもできますが、ここでの保証はありません。 –
@Flavius 私はLog4J2LogImplにプロパティを変更できましたが、(私たちはSL4Jを使用しています) java.lang.ClassNotFoundException:org.apache.logging.log4j.Levelを取得しました。私たちはlog4j-over-slf4jを使用していますので、これを利用できるはずです。私は、クラス(レベル)をロードするJarを(コードで)出力しました。それはEAP-6.4.0/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss- logmanager-1.1.1.Final-redhat-1.jar。モジュールorg.jboss.log4j.logmanagerを除外しても変更されません。 – maslan