Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;使用redis的spring应用程序中的java.lang.NullPointerException_Java_Spring_Exception - Fatal编程技术网

“线程中的异常”;“主要”;使用redis的spring应用程序中的java.lang.NullPointerException

“线程中的异常”;“主要”;使用redis的spring应用程序中的java.lang.NullPointerException,java,spring,exception,Java,Spring,Exception,我有一个带有redis的java应用程序,它抛出了异常 这里有课程。 主要类别: public class App { public static void main( String[] args ) { ManipulatingData manData = new ManipulatingData(); manData.addData(); } } 应用程序配置: /* * To change this template, choose To

我有一个带有redis的java应用程序,它抛出了异常

这里有课程。 主要类别:

public class App {
    public static void main( String[] args ) {
        ManipulatingData manData = new ManipulatingData();
        manData.addData();
    }
}
应用程序配置:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mycompany.springredisdatabook;

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    @Configuration
    public class ApplicationConfig {
        @Bean
        public JedisConnectionFactory connectionFactory() {
            JedisConnectionFactory connectionFactory = new JedisConnectionFactory(); 
            connectionFactory.setHostName("localhost"); 
            connectionFactory.setPort(6379);
            return connectionFactory;
        }
        @Bean 
        public StringRedisTemplate redisTemplate() {
            StringRedisTemplate redisTemplate = new StringRedisTemplate(); 
            redisTemplate.setConnectionFactory(connectionFactory()); 
            return redisTemplate;    
        }
        @Bean
        public RedisTemplate<String, Long> longTemplate() {
            StringRedisSerializer STRING_SERIALIZER = new StringRedisSerializer();
            RedisTemplate<String, Long> redisTemplate = new RedisTemplate<String, Long>();
                redisTemplate.setConnectionFactory(connectionFactory());
                redisTemplate.setKeySerializer(STRING_SERIALIZER);
                redisTemplate.setValueSerializer(LongSerializer.INSTANCE);
            return redisTemplate;
        }
    }

那么,这是什么?我不知道。我正在使用spring,顺便说一句,您的
redisTemplate
实例为空。检查spring.xml以了解
redisTemplate
的配置以及导致其为空的可能性,这是异常。第25行是什么?@NikolayKuznetsov有趣但真实的redistemplate.opsForSet().add(“k”+i,“v”+i);这是25号线这个问题解决了吗?如果是,你能写下你的发现吗?…从我的计算中,第25行是
redisTemplate.optsforvalue().getOperations().delete(键)我在ApplicationConfig类中定义了bean,我没有使用xml注释。检查了大约1000000次:)我病了,累了,这就是为什么我在这里问这个问题:)你完整的堆栈跟踪可能会有帮助这个堆栈跟踪是完整的:)
package com.mycompany.springredisdatabook;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;

public class ManipulatingData {

    public ManipulatingData() {}

    @Autowired
    StringRedisTemplate redisTemplate;
    public void addData() {
        double start = System.currentTimeMillis(); 
        for (int i=1; i<=1000; i++) {
            redisTemplate.opsForSet().add("k" + i, "v" + i);
        }
        double end = System.currentTimeMillis();
        System.out.println("Add data time: " + (end-start));
    }
    public String getData (String key) {
        return redisTemplate.opsForValue().get(key);
    }
    public void deleteData(String key) {
        redisTemplate.opsForValue().getOperations().delete(key);
    }
}
Exception in thread "main" java.lang.NullPointerException
    at com.mycompany.springredisdatabook.ManipulatingData.addData(ManipulatingData.java:25)
    at com.mycompany.springredisdatabook.App.main(App.java:11)
Java Result: 1