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