0

github から XD ソースの最新コピーを取得し、ローカルでビルドしてみました。ビルド タスクを実行すると、以下のエラーが表示されます。ポート 6379 で Redis を実行しています。他に何か不足しているかどうかはわかりません。

/etc/hosts は Mac では問題ないようです。テストをスキップするには、-x テストを実行する必要がありました。可能な解決策はありますか?gemfire を実行する必要がありますか?

127.0.0.1 ローカルホスト 255.255.255.255 ブロードキャストホスト ::1 ローカルホスト fe80::1%lo0 ローカルホスト 127.0.0.1 imac

13:49:47.920 [DEBUG] [TestEventLogger] 
13:49:47.920 [DEBUG] [TestEventLogger] org.springframework.integration.x.gemfire.JsonStringToObjectTransformerTests > test FAILED
13:49:47.921 [DEBUG] [TestEventLogger]     java.lang.RuntimeException: java.net.UnknownHostException
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.initAddress(DirectChannel.java:902)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.<init>(DirectChannel.java:126)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.membership.jgroup.JGroupMembershipManager.<init>(JGroupMembershipManager.java:1575)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.membership.jgroup.JGroupMemberFactory.newMembershipManager(JGroupMemberFactory.java:111)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.membership.MemberFactory.newMembershipManager(MemberFactory.java:95)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.DistributionManager.<init>(DistributionManager.java:1180)
13:49:47.921 [INFO] [system.out] 13:49:47.921 [DEBUG] [org.gradle.process.internal.child.ActionExecutionWorker] Stopping client connection.
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.DistributionManager.<init>(DistributionManager.java:1238)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.DistributionManager.create(DistributionManager.java:613)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:515)
13:49:47.921 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:230)
13:49:47.922 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.distributed.DistributedSystem.connect(DistributedSystem.java:1105)
13:49:47.922 [DEBUG] [TestEventLogger]         at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:227)
13:49:47.922 [DEBUG] [TestEventLogger]         at org.springframework.integration.x.gemfire.JsonStringToObjectTransformerTests.test(JsonStringToObjectTransformerTests.java:31)
13:49:47.922 [DEBUG] [TestEventLogger]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
13:49:47.922 [DEBUG] [TestEventLogger]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
13:49:47.922 [DEBUG] [TestEventLogger]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
13:49:47.922 [DEBUG] [TestEventLogger]         at java.lang.reflect.Method.invoke(Method.java:606)
13:49:47.922 [DEBUG] [TestEventLogger]         at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
13:49:47.922 [DEBUG] [TestEventLogger]         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
13:49:47.922 [DEBUG] [TestEventLogger]         at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
13:49:47.922 [DEBUG] [TestEventLogger]         at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
13:49:47.922 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86)
13:49:47.923 [DEBUG] [TestEventLogger]         at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49)
13:49:47.924 [DEBUG] [TestEventLogger]         at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69)
13:49:47.924 [DEBUG] [TestEventLogger]         at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:48)
13:49:47.924 [DEBUG] [TestEventLogger]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
13:49:47.924 [DEBUG] [TestEventLogger]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
13:49:47.924 [DEBUG] [TestEventLogger]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
13:49:47.924 [DEBUG] [TestEventLogger]         at java.lang.reflect.Method.invoke(Method.java:606)
13:49:47.924 [DEBUG] [TestEventLogger]         at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
13:49:47.924 [DEBUG] [TestEventLogger]         at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
13:49:47.924 [DEBUG] [TestEventLogger]         at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
13:49:47.924 [DEBUG] [TestEventLogger]         at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
13:49:47.925 [DEBUG] [TestEventLogger]         at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
13:49:47.925 [DEBUG] [TestEventLogger]         at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:105)
13:49:47.925 [DEBUG] [TestEventLogger]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
13:49:47.925 [DEBUG] [TestEventLogger]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
13:49:47.925 [DEBUG] [TestEventLogger]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
13:49:47.925 [DEBUG] [TestEventLogger]         at java.lang.reflect.Method.invoke(Method.java:606)
13:49:47.925 [DEBUG] [TestEventLogger]         at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
13:49:47.925 [DEBUG] [TestEventLogger]         at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
13:49:47.925 [DEBUG] [TestEventLogger]         at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:355)
13:49:47.925 [DEBUG] [TestEventLogger]         at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
13:49:47.925 [DEBUG] [TestEventLogger]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
13:49:47.925 [DEBUG] [TestEventLogger]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
13:49:47.926 [DEBUG] [TestEventLogger]         at java.lang.Thread.run(Thread.java:745)
13:49:47.926 [DEBUG] [TestEventLogger] 
13:49:47.926 [DEBUG] [TestEventLogger]         Caused by:
13:49:47.926 [DEBUG] [TestEventLogger]         java.net.UnknownHostException
13:49:47.926 [DEBUG] [TestEventLogger]             at com.gemstone.gemfire.internal.SocketCreator.getLocalHost(SocketCreator.java:312)
13:49:47.926 [DEBUG] [TestEventLogger]             at com.gemstone.gemfire.distributed.internal.direct.DirectChannel.initAddress(DirectChannel.java:898)
13:49:47.926 [DEBUG] [TestEventLogger]             ... 54 more
13:49:47.928 [DEBUG] [TestEventLogger] 
13:49:47.928 [DEBUG] [TestEventLogger] org.springframework.integration.x.gemfire.JsonStringToObjectTransformerTests FAILED
13:49:47.928 [DEBUG] [TestEventLogger] 
13:49:47.928 [DEBUG] [TestEventLogger] Gradle Test Executor 6 FAILED
4

2 に答える 2

1

奇妙なもの。同意します。あなたの /etc/hosts は良さそうです。127.0.0.1 の代わりに 127.0.1.1 を使用することがある Linux ボックスでこれを見たことがあります。テストは単純に次のキャッシュを開始し new CacheFactory().create();ます。GemFire ユーザーの場合、ホーム ディレクトリ、現在のディレクトリ、またはクラスパスに gemfire.properties または cache.xml ファイルがあるかどうかを確認することをお勧めします。GemFire はそれらを見つけることで有名です。

于 2014-10-29T20:43:14.280 に答える
0

/etc/hosts ファイルは問題ないようです (ただし、各ホスト エントリが 1 行になるようにフォーマットします)。

GemFire 7 を実行している可能性がありますか?

また、Mac で実行している Java ベンダー/バージョン (Apple または Oracle JDK/JRE およびバージョン) を教えてください。

Mac OS X のバージョンが要因 (???) である可能性があります。特に、ネットワークを無効にしている場合 (つまり、有効な IP に接続された「アクティブな」NIC がなく、有効な IP に接続されていないことが で判断された場合ifconfig)、これは明確ではありません。

簡単に言えば、GemFire は、ループバック アドレスが (/etc/hosts ファイルのように) 指定された IP のみである場合、または InetAddress によって返される場合に、(GemFire の内部 SocketCreator クラスを使用して) ローカル システムの実際の IP アドレスを解決/ルックアップしようとします。 getLocalHost()。

この解決プロセスはかなり複雑で、残念ながら、クラスがロードされるときに SocketCreator クラス内の「静的初期化子」ブロック内に含まれています。

InetAddress.getLocalHost() が null を返す可能性は低いと思われますが、この場合、GemFire で UnknownHostException がスローされた理由は、SocketCreator.localHost クラスのメンバー変数が null だったためです...

310:  public static InetAddress getLocalHost() throws UnknownHostException {
311:    if (localHost == null) {
312:      throw new UnknownHostException();
313:    }
314:    return localHost;
315:  }

「SocketCreator.localHost」静的メンバー変数は、静的初期化ブロック内で初期化されます。

そのため、静的イニシャライザが呼び出されなかったか、InetAddress.getLocalHost() (ネットワークが無効になっている可能性がありますか?) が null を返しましたが、NullPointerException (どこかに飲み込まれた可能性があるかどうかはわかりません) につながったであろう GemFire のコードを調べました。 、したがって、前者の方針に沿っているように見えますが、実際にはどちらの答えもありそうにありません。

1 つの可能な回避策 (スタック トレースに見られるように、GemFire のメンバーシップの起動時にこの IP 解決手順を回避したため) は、31 行目の Spring XD テスト クラス JsonStringToObjectTransformerTests を次のように変更することです。

31:    new CacheFactory().set("mcast-port", "0").set("log-level", "warning").create();

これにより、DirectChannel.initAddress(DirectChannel.java:898) からの SocketCreator.getLocalHost() 呼び出しが回避されました。

また、log-level を warn に設定すると、GemFire ノイズが減少し、テストが大幅に高速化されます。

お役に立てれば。

于 2014-10-30T03:45:41.017 に答える