2016-03-23 35 views
0

私は組み込みredis 0.6バージョンとspring-session-data-redis 1.0.1を使用しています。まだリリースされています。
mvn spring- boot:runコマンドを実行するとTomcatサーバーが起動しますが、埋め込みのredisでは例外が発生します。埋め込みの赤を開始できません

<dependency> 
      <groupId>org.springframework.session</groupId> 
      <artifactId>spring-session-data-redis</artifactId> 
      <version>1.0.1.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>com.github.kstyrc</groupId> 
      <artifactId>embedded-redis</artifactId> 
      <version>0.6</version> 
     </dependency> 



Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource [org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: ERR Unsupported CONFIG parameter: notify-keyspace-events; nested exception is redis.clients.jedis.exceptions.JedisDataException: ERR Unsupported CONFIG parameter: notify-keyspace-events 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
      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.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.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
      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 org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) 
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) 
      at com.springbootapp.config.Application.main(Application.java:16) 
      ... 6 more 
    Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: ERR Unsupported CONFIG parameter: notify-keyspace-events; nested exception is redis.clients.jedis.exceptions.JedisDataException: ERR Unsupported CONFIG parameter: notify-keyspace-events 
      at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:44) 
      at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:36) 
      at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:37) 
      at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:37) 
      at org.springframework.data.redis.connection.jedis.JedisConnection.convertJedisAccessException(JedisConnection.java:210) 
      at org.springframework.data.redis.connection.jedis.JedisConnection.setConfig(JedisConnection.java:633) 
      at org.springframework.session.data.redis.config.ConfigureNotifyKeyspaceEventsAction.configure(ConfigureNotifyKeyspaceEventsAction.java:63) 
      at org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration$EnableRedisKeyspaceNotificationsInitializer.afterPropertiesSet(RedisHttpSessionConfiguration.java:167) 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
      ... 22 more 
    Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Unsupported CONFIG parameter: notify-keyspace-events 
      at redis.clients.jedis.Protocol.processError(Protocol.java:117) 
      at redis.clients.jedis.Protocol.process(Protocol.java:151) 
      at redis.clients.jedis.Protocol.read(Protocol.java:205) 
      at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297) 
      at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:196) 
      at redis.clients.jedis.Jedis.configSet(Jedis.java:2575) 
      at org.springframework.data.redis.connection.jedis.JedisConnection.setConfig(JedisConnection.java:631) 
      ... 26 more 

答えて

4

エラーは、多くの場合、2つのいずれかの状況で起こる:

Redisのバージョンは、これが最も可能性の答えのように思える

古すぎます。 the documentationから:サンプルについて

仕事には、localhostとデフォルトポート(6379)との 実行それを上2.8+のRedisをインストールする必要があります。また、JedisConnectionFactoryをRedisサーバーを指すように更新することもできます。

あなたがイベントを受信して​​気にしない場合は、creating a ConfigureRedisAction Beanで鍵空間の通知の設定を無効にすることができます

@Bean 
public static ConfigureRedisAction configureRedisAction() { 
    return ConfigureRedisAction.NO_OP; 
} 

またはXMLを

<util:constant 
    static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/> 

また、あなたがいることを確認Redis 2.8+を実行しています。

あなたのRedisのインスタンスが無効になっているか、configコマンドの

これがデフォルトの設定によってれるので、埋め込まれたインスタンスの場合はほとんどありませんが、名前を変更しました。ドキュメントから:

あなたがSessionMessageListener を@EnableRedisHttpSession使用して、必要なRedisの鍵空間のイベントを有効にする場合

は自動的に が行われます。ただし、セキュアなRedis環境では、config コマンドは無効です。これは、Springセッションが Redis Keyspaceイベントを設定できないことを意味します。自動構成を無効にするには ConfigureRedisAction.NO_OPをBeanとして追加します。例えば

、Javaの設定は次のように使用することができます。

@Bean 
public static ConfigureRedisAction configureRedisAction() { 
    return ConfigureRedisAction.NO_OP; 
} 

またはXML

<util:constant 
    static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/> 
+0

私は、埋め込まれたRedisの構成 – Chetan

+0

を使用していますのために利用可能な新しいバージョンがあります埋め込みredis設定はNO OP設定を必要としません、私のpom.xmlの依存関係は – Chetan

+1

Springセッションは、現代版ではあまり安定ではなく、すべてのOSで動作するため、組み込みRedisを使用して停止しました。私はあなたの最善の策は、外部Redisインスタンスに切り替えることだと思います。 –

関連する問題