2016-06-07 40 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中没有非守护线程)。所以... –