`
chiangyaniu
  • 浏览: 1116 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring与java谁之过?

    博客分类:
  • java
阅读更多
一项目之前正常运行,今天测试又跑了一下,发现启动不了啊。还是环境maven打包问题,后来把新打的包解析和之前比较发现类库完全一样。
关键异常信息如下:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memcachedClient': FactoryBean threw exception on object creation; nested exception is java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:127)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:116)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:91)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1285)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:217)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByName(AbstractAutowireCapableBeanFactory.java:1029)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:977)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
... 27 more
百思不得姐啊,费劲周折把tomcat从6换到8均跑不起来。
后来不得已把包扔给同事,同事的小猫居然也可以启动。
后来突然想起我最近把JAVA_HOME改换成了Java8了,于是把Java切换成原来的Java6,终于跑起来了。
今天闲来无事,想探下究竟,发现报错代码如下

private int[] getWeightsArray(
            Map<InetSocketAddress, InetSocketAddress> serverMap) {
        int[] weightsArray = null;
        if (serverMap != null && serverMap.size() > 0 && this.weights != null) {
            if (this.weights.size() < serverMap.size()) {
                throw new IllegalArgumentException(
                        "Weight list's size is less than server list's size");
            }
            weightsArray = new int[this.weights.size()];
            for (int i = 0; i < weightsArray.length; i++) {
                weightsArray[i] = this.weights.get(i);
            }
        }
        return weightsArray;
    }

spring 配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
    <bean name="memcachedClient"
        class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
        <property name="servers">
            <value>${cache.memcached.servers}</value>
        </property>
        <property name="weights">
            <list>
                <value>1</value>
            </list>
        </property>
        <property name="sessionLocator">
            <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"></bean>
        </property>
        <property name="transcoder">
            <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" />
        </property>
        <property name="bufferAllocator">
            <bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"></bean>
        </property>
    </bean>
</beans> 

spring 版本为
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
            <version>2.5.5</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>2.5.6</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>2.5.6</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>2.5.6</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>2.5.6</version>
            <scope>compile</scope>
        </dependency>

   我尝试spring配置改为如下
  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
    <bean name="memcachedClient"
        class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
        <property name="servers">
            <value>${cache.memcached.servers}</value>
        </property>
        <property name="weights">
            <list>
                <value type="java.lang.Integer">1</value>
            </list>
        </property>
        <property name="sessionLocator">
            <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"></bean>
        </property>
        <property name="transcoder">
            <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" />
        </property>
        <property name="bufferAllocator">
            <bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"></bean>
        </property>
    </bean>
</beans> 
  Java环境换成8  居然不报错了,太神奇了。

不过最终是何原因呢? 待继续研究spring List注入源码,Java泛型机制也许方可知道。
分享到:
评论

相关推荐

    java-spring整合

    Java-Spring 整合是指将 Java 语言与 Spring 框架进行整合,以便更好地开发企业级应用程序。下面我们将对 Java-Spring 整合的相关知识点进行详细讲解。 一、 Spring 框架简介 Spring 框架是一款轻量级的、非侵入式...

    Java Maven导入Spring依赖

    Java使用Maven导入Spring依赖

    java spring视频4

    Java Spring 是一个广泛使用的开源框架,它为Java开发者提供了一个全面的编程和配置模型,用于构建现代、松散耦合的Java应用程序。Spring框架的核心特性可以支持其他模块,包括数据访问、Web应用、批量处理、缓存、...

    JAVAspring

    JAVAspring

    javamelody与spring集成测试入门例子

    在Spring框架中集成JavaMelody,可以让我们在开发和运维过程中更方便地了解应用的健康状况,及时发现并解决问题。 集成JavaMelody到Spring项目中,首先需要在项目的Maven或Gradle构建文件中添加JavaMelody的依赖。...

    基于spring,java健身房预约管理系统

    基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统...

    JAVA零基础到高级进阶特训营 JAVA多线程并发设计+Spring高级+数据库开发+JAVA基础等

    这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等

    Spring java

    eclipse java Spring mvc Hello World

    java Spring中文APi文档

    Java Spring 是一个开源框架,主要用于构建企业级的Java应用程序。Spring 框架以其模块化、松耦合和全面的依赖注入机制而闻名,它极大地简化了Java开发,并且为Web应用提供了强大的支持。Spring API 文档是学习和...

    学习spring必须要的java包

    学习spring不可少的包,commons-logging.java,hamcrest-core-1.3.java,junit-4.11.java,log4j-1.2.17.java,mysql-connector-java-5.1.39-bin.java,spring-aop-4.2.9.RELEASE.java,spring-beans-4.2.9.RELEASE.java,...

    java面试精选一 Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?

    java面试精选一 Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系? java面试刷题,查缺补漏 java面试刷题,查缺补漏 java面试刷题,查缺补漏 Spring,SpringMVC,SpringBoot,SpringCloud的区别和联系 ...

    java课程之Spring与设计模式专题 视频教程 下载 百度网盘链接3.zip

    Spring与设计模式7.mp4 Spring与设计模式 18.mp4 Spring与设计模式 31 .mp4 Spring与设计模式 48 .mp4 Spring与设计模式 2.mp4 Spring与设计模式 20.mp4 Spring与设计模式 38.mp4 Spring与设计模式 13.mp4 Spring与...

    java spring 工具类 java spring 工具类

    java spring 工具类 java spring 工具类java spring 工具类 java spring 工具类java spring 工具类 java spring 工具类java spring 工具类 java spring 工具类java spring 工具类 java spring 工具类

    java *spring工具类 方便在非spring管理环境中获取bean

    java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...

    spring-javaformat

    Spring Java格式这是什么? 一组可应用于任何Java项目的插件,以提供一致的“ Spring”样式。 该集合当前包括: 应用包装和空白约定的源格式化程序一个Checkstyle插件,可在整个代码库中实现一致性由于该项目的目的...

    Java Spring 的框架简介外文文献加翻译

    总结起来,Spring 框架以其强大的功能和灵活性,已经成为Java开发者的首选工具之一。通过控制反转、面向切面编程、数据访问支持、Web开发框架和安全解决方案,Spring 构建了完整的应用程序开发生态系统,极大地提高...

    【JAVAspring】Java Spring开发电商完整平台

    【JAVAspring】Java Spring开发电商完整平台 【实例简介】 Java Spring开发完整电商平台,SpringBoot框架基础打造的完整电商平台 【核心代码】 JavaSpring开发完整电商平台 └── Java Spring带前后端开发完整电商...

    Spring5.0.2-Java全套资料.

    Spring5.0.2-Java全套资料.

    spring与java反射结合动态定义类及调用函数

    spring与java反射结合动态定义类及调用函数,实现类的动态定义和函数的动态调用。 为有动态调用的web应用提供一点点借鉴,相互学习。

    Spring 集成Java消息服务

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了广泛的支持。而Java消息服务(Java Message Service,简称JMS)则是一种标准API,用于在分布式环境中进行异步通信。当我们谈论...

Global site tag (gtag.js) - Google Analytics