areaservicetest测试错误

areaservicetest测试错误

Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'jedisPoolConfig' defined in 


class path resource [spring/spring-redis.xml]: Could not resolve placeholder 'redis.pool.maxActive' in string value 


"${redis.pool.maxActive}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.pool.maxActive' in 


string value "${redis.pool.maxActiv}"

java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.pool.maxActive' in string value "${redis.pool.maxActive}"


正在回答

登陆购买课程后可参与讨论,去登陆

13回答

同学你好!

  1. 很抱歉回复同学迟了,还望同学见谅,另外由于老师这里是按照时间顺序来答的,因此建议同学尽量减少在问答中回复的次数,因为一旦回复时间就会更新,这样老师看到的时间就会延后

  2. 同时也很理解同学你的心情,建议同学还是要慢慢来,分析为什么会出现这个问题

  3. 由于老师这里使用同学的代码,并没有出现问题,所以同学你的redis.xml是没有问题的,这里老师推测可能是同学你的redis.properties文件并没有被引入到xml中,建议同学检查一下自己的spring-dao.xml中,是否引入了redis.properties文件

http://img1.sycdn.imooc.com//climg/5de22d91092b791315040206.jpg

如果有,建议同学重新编译一下项目测试一下

http://img1.sycdn.imooc.com//climg/5de22e700925e86202710230.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

提问者 学习中的傅山 2019-11-30 14:45:12

明明在redis.xml中可以读的到就是 运行就是错http://img1.sycdn.imooc.com//climg/5de20fdd09cd3b4608450224.jpg

提问者 学习中的傅山 2019-11-30 14:16:56
提问者 学习中的傅山 2019-11-30 14:09:07
好帮手慕柯南 2019-11-30 14:04:58

同学你好!

1.请问同学你的redis.properties文件放在那里了呢,是否和老师的不一样呢

http://img1.sycdn.imooc.com//climg/5de2060109bfe51a03890280.jpg

2.下面这个提示是说:有4个配置文件,这个没有关系,不会影响程序的正常运行

http://img1.sycdn.imooc.com//climg/5de2064909853cea08900092.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 学习中的傅山 #1
    没错啊老师文件放置的地方
    2019-11-30 14:09:58
  • 提问者 学习中的傅山 #2
    老师能不能帮我看看啊 好烦啊
    2019-11-30 16:33:26
提问者 学习中的傅山 2019-11-30 12:28:16

还有老师 idea 提示这个  该怎么解决

http://img1.sycdn.imooc.com//climg/5de1efde09c4921f16100116.jpg

提问者 学习中的傅山 2019-11-30 11:59:59

org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'jedisPoolConfig' defined in class path resource [spring/spring-redis.xml]: Could not resolve placeholder 'redis.pool.maxActive' in string value "${redis.pool.maxActive}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.pool.maxActive' in string value "${redis.pool.maxActive}"

还是这个错误

spring-redis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">
   <!-- Redis连接池的设置 -->
   <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
       <!-- 控制一个pool可分配多少个jedis实例 -->
       <property name="maxTotal" value="${redis.pool.maxActive}" />
       <!-- 连接池中最多可空闲maxIdle个连接 ,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。 -->
       <property name="maxIdle" value="${redis.pool.maxIdle}" />
       <!-- 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常 -->
       <property name="maxWaitMillis" value="${redis.pool.maxWait}" />
       <!-- 在获取连接的时候检查有效性 -->
       <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
   </bean>

   <!-- 创建Redis连接池,并做相关配置 -->
   <bean id="jedisWritePool" class="com.fushan.o2o.cache.JedisPoolWriper"
         depends-on="jedisPoolConfig">
       <constructor-arg index="0" ref="jedisPoolConfig" />
       <constructor-arg index="1" value="${redis.hostname}" />
       <constructor-arg index="2" value="${redis.port}" type="int" />
   </bean>

   <!-- 创建Redis工具类,封装好Redis的连接以进行相关的操作 -->
   <bean id="jedisUtil" class="com.fushan.o2o.cache.JedisUtil" scope="singleton">
       <property name="jedisPool">
           <ref bean="jedisWritePool" />
       </property>
   </bean>
   <!-- Redis的key操作 -->
   <bean id="jedisKeys" class="com.fushan.o2o.cache.JedisUtil$Keys" scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>
   <!-- Redis的Strings操作 -->
   <bean id="jedisStrings" class="com.fushan.o2o.cache.JedisUtil$Strings"
         scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>
   <!-- Redis的Lists操作 -->
   <bean id="jedisLists" class="com.fushan.o2o.cache.JedisUtil$Lists"
         scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>

</beans>    

redis-properties

redis.hostname=localhost
redis.port=6379
redis.database=0
redis.pool.maxActive=100
redis.pool.maxIdle=20
redis.pool.maxWait=3000
redis.pool.testOnBorrow=true

好帮手慕柯南 2019-11-30 11:04:02

同学你好!

  1. 老师使用你的redis.xml文件在本地测试,是没有问题的

  2. 请问同学的redis.properties是下面的样子吗?

    http://img1.sycdn.imooc.com//climg/5de1db8609c5474606990639.jpg

    如果是你redis.properties文件中配置错了呢,应该写成下面的样子:

redis.hostname=localhost
redis.port=6379
redis.database=0
redis.pool.maxActive=100
redis.pool.maxIdle=20
redis.pool.maxWait=3000
redis.pool.testOnBorrow=true

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 学习中的傅山 #1
    老师我已经在回答里面提供了 redis.properties 没有错啊
    2019-11-30 11:14:08
  • 提问者 学习中的傅山 #2
    不知道为什么就是无法解析
    2019-11-30 12:17:54
提问者 学习中的傅山 2019-11-29 23:41:47

添加了之后 访问shopadminshoplist 500错误

Root Cause

org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'jedisPoolConfig' defined in file [E:\idea\apache-tomcat-8.5.33\webapps\o2o\WEB-INF\classes\spring\spring-redis.xml]: Could not resolve placeholder 'redis.pool.maxActive' in string value "${redis.pool.maxActive}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.pool.maxActive' in string value "${redis.pool.maxActive}"
org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:211)
org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:177)
org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:152)
org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:284)
org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:166)
org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520)
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:748)


提问者 学习中的傅山 2019-11-29 23:34:57
提问者 学习中的傅山 2019-11-29 23:34:28

redis.properties

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">
   <!-- Redis连接池的设置 -->
   <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
       <!-- 控制一个pool可分配多少个jedis实例 -->
       <property name="maxTotal" value="${redis.pool.maxActive}" />
       <!-- 连接池中最多可空闲maxIdle个连接 ,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。 -->
       <property name="maxIdle" value="${redis.pool.maxIdle}" />
       <!-- 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常 -->
       <property name="maxWaitMillis" value="${redis.pool.maxWait}" />
       <!-- 在获取连接的时候检查有效性 -->
       <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
   </bean>

   <!-- 创建Redis连接池,并做相关配置 -->
   <bean id="jedisWritePool" class="com.fushan.o2o.cache.JedisPoolWriper"
         depends-on="jedisPoolConfig">
       <constructor-arg index="0" ref="jedisPoolConfig" />
       <constructor-arg index="1" value="${redis.hostname}" />
       <constructor-arg index="2" value="${redis.port}" type="int" />
   </bean>

   <!-- 创建Redis工具类,封装好Redis的连接以进行相关的操作 -->
   <bean id="jedisUtil" class="com.fushan.o2o.cache.JedisUtil" scope="singleton">
       <property name="jedisPool">
           <ref bean="jedisWritePool" />
       </property>
   </bean>
   <!-- Redis的key操作 -->
   <bean id="jedisKeys" class="com.fushan.o2o.cache.JedisUtil$Keys" scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>
   <!-- Redis的Strings操作 -->
   <bean id="jedisStrings" class="com.fushan.o2o.cache.JedisUtil$Strings"
         scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>
   <!-- Redis的Lists操作 -->
   <bean id="jedisLists" class="com.fushan.o2o.cache.JedisUtil$Lists"
         scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>

</beans>    

提问者 学习中的傅山 2019-11-29 23:33:34

redis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">
   <!-- Redis连接池的设置 -->
   <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
       <!-- 控制一个pool可分配多少个jedis实例 -->
       <property name="maxTotal" value="${redis.pool.maxActive}" />
       <!-- 连接池中最多可空闲maxIdle个连接 ,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。 -->
       <property name="maxIdle" value="${redis.pool.maxIdle}" />
       <!-- 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常 -->
       <property name="maxWaitMillis" value="${redis.pool.maxWait}" />
       <!-- 在获取连接的时候检查有效性 -->
       <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
   </bean>

   <!-- 创建Redis连接池,并做相关配置 -->
   <bean id="jedisWritePool" class="com.fushan.o2o.cache.JedisPoolWriper"
         depends-on="jedisPoolConfig">
       <constructor-arg index="0" ref="jedisPoolConfig" />
       <constructor-arg index="1" value="${redis.hostname}" />
       <constructor-arg index="2" value="${redis.port}" type="int" />
   </bean>

   <!-- 创建Redis工具类,封装好Redis的连接以进行相关的操作 -->
   <bean id="jedisUtil" class="com.fushan.o2o.cache.JedisUtil" scope="singleton">
       <property name="jedisPool">
           <ref bean="jedisWritePool" />
       </property>
   </bean>
   <!-- Redis的key操作 -->
   <bean id="jedisKeys" class="com.fushan.o2o.cache.JedisUtil$Keys" scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>
   <!-- Redis的Strings操作 -->
   <bean id="jedisStrings" class="com.fushan.o2o.cache.JedisUtil$Strings"
         scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>
   <!-- Redis的Lists操作 -->
   <bean id="jedisLists" class="com.fushan.o2o.cache.JedisUtil$Lists"
         scope="singleton">
       <constructor-arg ref="jedisUtil"></constructor-arg>
   </bean>

</beans>    

提问者 学习中的傅山 2019-11-29 23:31:50

测试代码

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml","classpath:spring/spring-redis.xml"})
public class AreaServiceTest  {
   @Autowired
   private AreaService areaService;
   @Autowired
   private CacheService cacheService;

   public AreaServiceTest() {
   }

   @Test
   public void testGetAreaList() {
       List<Area> areaList = this.areaService.getAreaList();
       Assert.assertEquals("西苑", ((Area)areaList.get(0)).getAreaName());
       AreaService var10001 = this.areaService;
       this.cacheService.removeFromCache("arealist");
       areaList = this.areaService.getAreaList();
   }
}

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师