一项目之前正常运行,今天测试又跑了一下,发现启动不了啊。还是环境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 整合的相关知识点进行详细讲解。 一、 Spring 框架简介 Spring 框架是一款轻量级的、非侵入式...
Java使用Maven导入Spring依赖
Java Spring 是一个广泛使用的开源框架,它为Java开发者提供了一个全面的编程和配置模型,用于构建现代、松散耦合的Java应用程序。Spring框架的核心特性可以支持其他模块,包括数据访问、Web应用、批量处理、缓存、...
JAVAspring
在Spring框架中集成JavaMelody,可以让我们在开发和运维过程中更方便地了解应用的健康状况,及时发现并解决问题。 集成JavaMelody到Spring项目中,首先需要在项目的Maven或Gradle构建文件中添加JavaMelody的依赖。...
基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统基于spring,java健身房预约管理系统...
这套课程既可以作为从零基础开始...课程的主要内容涉及有JAVA基础课程、JAVA多线程与并发编程、数据库开发基础和进阶、Spring Framework、Spring进阶、Spring MVC框架、Spring boot、Java常用类库、Java异常处理等等
eclipse java Spring mvc Hello World
Java Spring 是一个开源框架,主要用于构建企业级的Java应用程序。Spring 框架以其模块化、松耦合和全面的依赖注入机制而闻名,它极大地简化了Java开发,并且为Web应用提供了强大的支持。Spring API 文档是学习和...
学习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面试刷题,查缺补漏 java面试刷题,查缺补漏 java面试刷题,查缺补漏 Spring,SpringMVC,SpringBoot,SpringCloud的区别和联系 ...
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工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...
Spring Java格式这是什么? 一组可应用于任何Java项目的插件,以提供一致的“ Spring”样式。 该集合当前包括: 应用包装和空白约定的源格式化程序一个Checkstyle插件,可在整个代码库中实现一致性由于该项目的目的...
总结起来,Spring 框架以其强大的功能和灵活性,已经成为Java开发者的首选工具之一。通过控制反转、面向切面编程、数据访问支持、Web开发框架和安全解决方案,Spring 构建了完整的应用程序开发生态系统,极大地提高...
【JAVAspring】Java Spring开发电商完整平台 【实例简介】 Java Spring开发完整电商平台,SpringBoot框架基础打造的完整电商平台 【核心代码】 JavaSpring开发完整电商平台 └── Java Spring带前后端开发完整电商...
Spring5.0.2-Java全套资料.
spring与java反射结合动态定义类及调用函数,实现类的动态定义和函数的动态调用。 为有动态调用的web应用提供一点点借鉴,相互学习。
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了广泛的支持。而Java消息服务(Java Message Service,简称JMS)则是一种标准API,用于在分布式环境中进行异步通信。当我们谈论...