0

我正在尝试使用基于 xml 的配置来使用 spring-data-solr。我的配置文件是:

<?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:solr="http://www.springframework.org/schema/data/solr"
  xsi:schemaLocation="http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-4.0.xsd
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		  http://www.springframework.org/schema/data/solr http://www.springframework.org/schema/data/solr/spring-solr.xsd">

    <!-- Configures HTTP Solr server -->
    <solr:solr-server id="solrServer" url="${solr.url}${solr.collection.name}" 
     timeout="${solr.time.out}" maxConnections="${solr.max.connections}"/> 

    <!-- Configures Solr template -->
    <bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
        <constructor-arg index="0" ref="solrServer"/>
    </bean>
</beans>

当我想将属性注入到 solr-server 属性中的 maxConnections 和超时时,出现以下错误:

cvc-datatype-valid.1.2.1: '${solr.time.out}' is not a valid value for 'integer'.

有没有办法将属性字段注入那些 int 定义的属性?谢谢你 :D

截屏

4

1 回答 1

0

在找到另一种解决方法后,最后我没有在我的 xml 配置中定义 solr-server,而是定义了 HttpSolrServerFactoryBean,如果我们在 xml 中定义它,它将返回 solr-server。

<?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:solr="http://www.springframework.org/schema/data/solr"
  xsi:schemaLocation="http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context.xsd
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd
		  http://www.springframework.org/schema/data/solr http://www.springframework.org/schema/data/solr/spring-solr.xsd">

		
    <!-- Configures HTTP Solr server -->
    <!--<solr:solr-server id="solrServer" url="${solr.url}${solr.collection.name}" 
    timeout='${solr.timeout}' maxConnections='${solr.max.connections}'/>-->
	
	
	<bean id="solrServer" class="org.springframework.data.solr.server.support.HttpSolrServerFactoryBean">
		<property name="url" value="${solr.url}${solr.collection.name}"/>
		<property name="timeout" value="${solr.timeout}"/>
		<property name="maxConnections" value="${solr.max.connections}"/>
	</bean>
	
    <!-- Configures Solr template -->
    <bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
        <constructor-arg index="0" ref="solrServer"/>
    </bean>
	
</beans>

谢谢你。

于 2016-01-25T04:04:24.177 回答