2016-06-07 41 views
0

我將介紹到pivotal GemFire,因此我在春季創建了一個啓動項目,並在春季指南中複製了以下項目。如何在gemfire中查看持久數據(通過spring-data-gemfire持久保存)commanline gfsh

https://spring.io/guides/gs/accessing-data-gemfire/

而這個項目的工作數據被持久化,我可以能夠檢索數據,以及。

在另一邊我已經下載了「的GemFire 8.2.1」並安裝在我的系統,並設置所有的ENV變量,可以能夠運行爲conmmandLine的GemFire gfsh

1)現在我的問題是如何在這個命令行gfsh中查看持久數據(通過spring-data-gemfire持久化)。所以,我真的可以看到它是如何存儲和等

2)此外,在上述Spring項目雖然它做工精細的投擲例外,因爲

[info 2016/06/07 20:24:55.559 IST <main> tid=0x1] Command Service could not be initialized. Could not find Spring Shell library which is needed for CLI/gfsh in classpath. Internal support for CLI & gfsh is not enabled. Note: For convenience, absolute path of "gfsh-dependencies.jar" from "lib" directory of GemFire product distribution can be included in CLASSPATH of an application. 
com.gemstone.gemfire.management.DependenciesNotFoundException: Could not find Spring Shell library which is needed for CLI/gfsh in classpath. Internal support for CLI & gfsh is not enabled. Note: For convenience, absolute path of "gfsh-dependencies.jar" from "lib" directory of GemFire product distribution can be included in CLASSPATH of an application. 
    at com.gemstone.gemfire.management.cli.CommandService.createLocalCommandService(CommandService.java:135) 
    at com.gemstone.gemfire.management.internal.beans.MemberMBeanBridge.<init>(MemberMBeanBridge.java:352) 
    at com.gemstone.gemfire.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:152) 
    at com.gemstone.gemfire.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:111) 
    at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2243) 
    at com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:503) 
    at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.init(GemFireCacheImpl.java:1009) 
    at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:682) 
    at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:182) 
    at com.gemstone.gemfire.cache.CacheFactory.create(CacheFactory.java:229) 
    at org.springframework.data.gemfire.CacheFactoryBean.createCache(CacheFactoryBean.java:398) 
    at org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:303) 
    at org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:244) 
    at org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:871) 
    at org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:86) 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) 
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1590) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813) 
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:464) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:534) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:523) 
    at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1162) 
    at org.springframework.data.gemfire.repository.support.GemfireRepositoryFactoryBean.setApplicationContext(GemfireRepositoryFactoryBean.java:71) 
    at org.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces(ApplicationContextAwareProcessor.java:119) 
    at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:94) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
    at com.wrd.mytrah.GemFireSubject03Application.main(GemFireSubject03Application.java:26) 
``` 

那麼如何解決這個問題,它有任何與上述問題(問題1)

請幫助這個newbee ..謝謝

回答

2

1)您有幾個選項看到的數據保存到了GemFire從春數據的GemFire BAS ed使用Gfsh

1.A),您可以從gfsh命令行像這樣執行OQL ...

gfsh>query --query="SELECT * FROM /<your region name here> WHERE <predicates here>"

例如...

SELECT c.name FROM /Customers c WHERE c.age > 21

查看文檔的GemFire欲瞭解更多詳情...

1.B)您也可以使用的GemFire的數據瀏覽器的工具,這是脈衝的GemFire管理/監控工具的一個組件的選項。

以下文檔說明如何從Gfsh開始/啓動Pulse ...

本質...

gfsh>start pulse

定位器/管理器之後已啓動。 2)至於異常,GemFire目前有一個錯誤,即使GemFire服務器節點不是「管理器」,它也會嘗試加載管理命令類。這個異常是良性的,但你可以通過在你的類路徑中包含Spring Shell依賴來消除它。例如,使用Maven,你會宣稱以下依賴...

<dependency> 
    <groupId>org.springframework.shell</groupId> 
    <artifactId>spring-shell</artifactId> 
    <version>1.0.0.RELEASE</version> 
    <scope>runtime</scope> 
    <exclusions> 
    <exclusion> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
    </exclusion> 
    <exclusion> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

如果你不使用Maven或搖籃,那麼你就可以作爲例外消息狀態做,把$ GEMFIRE_HOME/lib中/ gfsh-依賴於您的應用程序類路徑(可能在您的IDE中)。然而,如果你遵循Spring Guides,那麼你使用的是Maven或Gradle。

希望這會有所幫助!

乾杯, 約翰

+0

感謝@約翰布盧姆補充說,依賴工作。但我的第一個問題,它不工作。我的意思是在上面的例子中,[link](https://spring.io/guides/gs/accessing-data-gemfire/)。地區名稱是「**你好**」,所以我試圖查詢爲gfsh> query --query =「select * from/hello」。也嘗試_gfsh>列出地區_它說沒有地區可用。我觀察到的一件事是春天正在創建它自己的gemfire服務器。所以,也許gfsh不知道服務器或我不知道究竟發生了什麼。謝謝 –

+0

最可能的原因是Spring GemFire Server未連接到您在Gfsh中形成的羣集。將一個額外的GemFire「'locators'」屬性添加到指南中的示例以將其連接到集羣是一件簡單的事情... https://github.com/spring-guides/gs-accessing-data-gemfire /blob/master/complete/src/main/java/hello/Application.java#L22-L29。只需添加'gemfireProperties.setProperty(「locators」,「host [port]」)',根據啓動定位器時在Gfsh中使用的參數適當地設置主機和端口。 –

+0

我還會補充說明,指南中的例子會直接通過(https://github.com/spring-guides/gs-accessing-data-gemfire/blob/master/complete/src/main/java/hello/ Application.java#L88-L92;以及... https://github.com/spring-guides/gs-accessing-data-gemfire/blob/master/complete/src/main/java/hello/Application。 java#L52-L86)並退出,然後才能使用Gfsh檢查任何'hello'區域內容。這是因爲GemFire沒有阻止GemFire服務器/數據節點關閉(即默認情況下GemFire中沒有非守護線程)。所以... –