TYPO3 v12 DDEV环境中SolrCores初始化失败求助
问题
我正尝试在TYPO3 v12的DDEV环境中集成Solr,但遇到如下错误:
core_en: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Error loading class 'org.apache.solr.response.XSLTResponseWriter'
我在项目根目录执行了以下命令:
- mkdir -p .ddev/solr
- cp -r vendor/apache-solr-for-typo3/solr/Resources/Private/Solr/* .ddev/solr
我的docker-compose.solr.yaml文件内容如下:
services: solr: container_name: ddev-${DDEV_SITENAME}-solr image: typo3solr/ext-solr:12.0.5 restart: "no" expose: - 8983 labels: com.ddev.site-name: ${DDEV_SITENAME} com.ddev.approot: $DDEV_APPROOT environment: - VIRTUAL_HOST=$DDEV_HOSTNAME - HTTP_EXPOSE=8983 volumes: - "./solr:/opt/solr/server/solr" # If you want your solr to persist over `ddev stop` and `ddev start` then uncomment the following line # If you uncomment it and want to flush your data you have to `ddev stop` and then # `docker volume rm ddev-<projectname>_solrdata` to destroy it. - solr:/var/solr web: links: - solr volumes: # solr is a persistent Docker volume for this project's solr data # the volume will be named ddev-<project>_solr solr:
访问http://myproject.ddev.site:8983/solr/#/时出现上述错误,需要修改哪些配置才能完成SolrCores的初始化?
解决方案
1. 调整容器挂载目录
当前挂载./solr:/opt/solr/server/solr会完全覆盖容器内默认的/opt/solr/server/solr目录,导致Solr丢失运行必需的基础配置(如solr.xml)。修改挂载路径,只将自定义核心配置挂载到容器内的子目录:
更新docker-compose.solr.yaml中的volumes部分:
volumes: - "./solr:/opt/solr/server/solr/mycores" - solr:/var/solr
2. 删除过时的XSLTResponseWriter配置
Solr 9及以上版本已移除XSLTResponseWriter组件,但ext-solr的核心配置可能保留了旧代码。检查.ddev/solr/core_en/conf/solrconfig.xml,找到并删除以下类似配置块:
<queryResponseWriter name="xslt" class="org.apache.solr.response.XSLTResponseWriter"/>
3. 重启DDEV环境
执行命令让新配置生效:
ddev stop && ddev start
4. 验证核心目录结构
确保.ddev/solr下的核心目录(如core_en)包含完整结构:
conf/:存放solrconfig.xml、managed-schema等配置文件data/:用于存储索引数据(可自动生成)
内容的提问来源于stack exchange,提问作者chris
相关产品推荐
相关产品推荐

