2017-04-06 78 views
1

我想在我的spring JUnit测试中启动一个hazelcast实例。下面是XML配置我试图加载作为@ContextConfigurationbean class [com.hazelcast.config.Config]的属性'semaphoreConfigs':

<?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" 
    xmlns:hz="http://www.hazelcast.com/schema/spring" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      http://www.hazelcast.com/schema/spring 
      http://www.hazelcast.com/schema/spring/hazelcast-spring.xsd"> 

<context:annotation-config /> 

<hz:hazelcast id="instance"> 
<hz:config> 
<hz:spring-aware /> 
<hz:group name="dev" password="password"/> 
<hz:network port="5701" port-auto-increment="false"> 
    <hz:join> 
     <hz:multicast enabled="false" /> 
     <hz:tcp-ip enabled="true"> 
      <hz:members>127.0.0.1</hz:members> 
     </hz:tcp-ip> 
    </hz:join> 
</hz:network> 
</hz:config> 
</hz:hazelcast> 

正在此下方例外,任何指针是有益的

org.springframework.beans.NotWritablePropertyException:无效的属性Bean类的[semaphoreConfigs] [com.hazelcast.config.Config]:Bean属性'semaphoreConfigs'不可写或具有无效的setter方法。 setter的参数类型是否与getter的返回类型相匹配? 在org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1042) 在org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:902) 在org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor。的java:75) 在org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)

+0

什么Hazelcast版本?什么春天的版本? Spring Boot还是简单的Spring框架? – noctarius

+0

这是普通的Spring框架,Java版本是JDK 1.7。 Hazelcast是3.8和Spring版本是3.2.4.RELEASE。我实际上正在修改一个旧的项目,并尝试写一些测试来实现它的工作。 –

回答

1

异常描述表明弹簧3.2.4.RELEASE不能由于吸气剂返回之间的差异处理旗语CONFIGS类型和setter参数类型。从com.hazelcast.config.Config类:

public Collection<SemaphoreConfig> getSemaphoreConfigs() {...} 

public Config setSemaphoreConfigs(Map<String, SemaphoreConfig> semaphoreConfigs) {...} 

hazelcast-spring建&对Spring framework 4.3.0.RELEASE测试,它处理的信号配置创建正确(tested here)。如果升级Spring框架版本是一个选项,我会建议这样做。