I do something similar, but without the placeholders in db-data-config.xml. You 
can define the entire datasource in solrconfig.xml, then leave out that element 
entirely in db-data-config.xml. It seems really odd, but that is how the code 
works.

This is working for me in 4.1, so it might be a workaround for you.

It looks like this:

  <requestHandler name="/dataimport" 
class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
      <lst name="datasource">
        <str name="defType">JdbcDataSource</str>
        <str name="driver">com.mysql.jdbc.Driver</str>
        <str name="url">jdbc:mysql://${textbooks.dbhost:nohost}/xxxx</str>
        <str name="user">${textbooks.dbuser:yyyyy}</str>
        <str name="password">${textbooks.dbpass:zzzzzz}</str>
        <str name="batchSize">-1</str>
        <str name="readOnly">true</str>
        <str name="onError">skip</str>
        <str name="netTimeoutForStreamingResults">600</str>
        <str name="zeroDateTimeBehavior">convertToNull</str>
      </lst>
    </lst>
  </requestHandler>

wunder

On Jan 25, 2013, at 10:45 AM, Dyer, James wrote:

> This is a bug.  Thank you for reporting it.  I opened this ticket: 
> https://issues.apache.org/jira/browse/SOLR-4361
> 
> Until there is a fix, here are two workarounds:
> 
> 1. If you do not need any 4.1 DIH functionality, use the 4.0 DIH jar with 
> your 4.1 Solr.
> -or-
> 2. Use request parameters without dots:  ex. "solrBceDSDriver" instead of 
> "solr.bceDS.driver".
> 
> James Dyer
> E-Commerce Systems
> Ingram Content Group
> (615) 213-4311
> 
> 
> -----Original Message-----
> From: Boris Granveaud [mailto:bo...@granveaud.com] 
> Sent: Friday, January 25, 2013 3:38 AM
> To: solr-user@lucene.apache.org
> Subject: Error in DIH after upgrading from 4.0 to 4.1
> 
> Hello,
> 
> I've just tried to upgrade from 4.0 to 4.1 and I have the following
> exception when reindexing my data:
> 
> Caused by: java.lang.UnsupportedOperationException
> at java.util.Collections$UnmodifiableMap.put(Collections.java:1283)
> at
> org.apache.solr.handler.dataimport.VariableResolver.currentLevelMap(VariableResolver.java:204)
> at
> org.apache.solr.handler.dataimport.VariableResolver.resolve(VariableResolver.java:94)
> at
> org.apache.solr.handler.dataimport.VariableResolver.replaceTokens(VariableResolver.java:144)
> at
> org.apache.solr.handler.dataimport.ContextImpl.replaceTokens(ContextImpl.java:254)
> at
> org.apache.solr.handler.dataimport.JdbcDataSource.resolveVariables(JdbcDataSource.java:203)
> at
> org.apache.solr.handler.dataimport.JdbcDataSource.createConnectionFactory(JdbcDataSource.java:101)
> at
> org.apache.solr.handler.dataimport.JdbcDataSource.init(JdbcDataSource.java:62)
> at
> org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:394)
> 
> It seems to be related to the use of placeholders in data-config.xml:
> 
> <dataConfig>
>    <dataSource type="JdbcDataSource"
>                name="bceDS"
>                driver="${dataimporter.request.solr.bceDS.driver}"
>                url="${dataimporter.request.solr.bceDS.url}"
>                user="${dataimporter.request.solr.bceDS.user}"
>                password="${dataimporter.request.solr.bceDS.password}"
>                batchSize="-1"/>
> 
> solrconfig.xml:
> 
> <requestHandler name="/dataimport"
> class="org.apache.solr.handler.dataimport.DataImportHandler">
> <lst name="defaults">
> <str name="config">data-config.xml</str>
> 
> <!-- dataSource parameters for data-config.xml -->
> <str name="solr.bceDS.driver">...</str>
> <str name="solr.bceDS.url">...</str>
> <str name="solr.bceDS.user">...</str>
> <str name="solr.bceDS.password">...</str>
> </lst>
> </requestHandler>
> 
> Did I miss something or is it a bug?
> 
> Thanks,
> Boris.
> 

--
Walter Underwood
wun...@wunderwood.org



Reply via email to