Buenas, estoy teniendo este error que no consigo solucionar en la versión de alfresco-search-services:1.4.0, debajo de la traza detallo la casuística y las configuraciones.
2020-03-13 09:53:18.857 ERROR (qtp1297978429-20) [ x:alfresco] o.a.s.s.HttpSolrCall null:java.lang.NullPointerException
at org.alfresco.solr.query.Solr4QueryParser.getContentStore(Solr4QueryParser.java:195)
at org.alfresco.solr.query.Solr4QueryParser.<init>(Solr4QueryParser.java:168)
at org.alfresco.solr.query.Lucene4QueryBuilderContextSolrImpl.<init>(Lucene4QueryBuilderContextSolrImpl.java:64)
at org.alfresco.solr.AlfrescoSolrDataModel.getLuceneQueryBuilderContext(AlfrescoSolrDataModel.java:1401)
at org.alfresco.solr.AlfrescoSolrDataModel.getFTSQuery(AlfrescoSolrDataModel.java:1456)
at org.alfresco.solr.query.AlfrescoFTSQParserPlugin$AlfrescoFTSQParser.parse(AlfrescoFTSQParserPlugin.java:105)
at org.apache.solr.search.QParser.getQuery(QParser.java:168)
at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:161)
at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(AlfrescoSearchHandler.java:323)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:723)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:529)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:534)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.base/java.lang.Thread.run(Thread.java:834)
2020-03-13 09:53:47.262 ERROR (qtp1297978429-12) [ x:alfresco] o.a.s.h.RequestHandlerBase java.lang.IllegalArgumentException: value already present: _dummy_
at com.google.common.collect.HashBiMap.put(HashBiMap.java:241)
at com.google.common.collect.HashBiMap.put(HashBiMap.java:218)
at org.alfresco.solr.component.RewriteFacetParametersComponent.rewriteFacetFieldList(RewriteFacetParametersComponent.java:509)
at org.alfresco.solr.component.RewriteFacetParametersComponent.fixFacetParams(RewriteFacetParametersComponent.java:198)
at org.alfresco.solr.component.RewriteFacetParametersComponent.prepare(RewriteFacetParametersComponent.java:64)
at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(AlfrescoSearchHandler.java:323)
FIN TRAZA ERROR
Estamos actualizando la versión de alfresco-search-services de la versión 1.2.0 hacia la versión 1.4.0, el motivo es un error que se soluciona en esta versión sobre el buscador de personas al realizar el filtro por nombre o apellidos de usuarios sincronizados por ldap.
El error que reporto se muestra cuando se realiza la búsqueda de cualquier contenido, tanto la simple como la avanzada.
Este error sólo se produce en el entorno de PRE, funciona correctamente en las pruebas realizadas sobre local.
Analizando las diferencias en las configuraciones e implantación, no encontramos el motivo del error.
Configuración local:
Se realiza mediante docker-compose, configuración:
solr6:
build:
context: ./search
args:
SEARCH_TAG: 1.4.0
SOLR_HOSTNAME: solr6
ALFRESCO_HOSTNAME: alfresco
ALFRESCO_COMMS: none
CROSS_LOCALE: "true"
container_name: solr
restart: "always"
environment:
#Solr needs to know how to register itself with Alfresco
SOLR_ALFRESCO_HOST: "alfresco6"
SOLR_ALFRESCO_PORT: "8080"
#Alfresco needs to know how to call solr
SOLR_SOLR_HOST: "solr6"
SOLR_SOLR_PORT: "8983"
#Create the default alfresco and archive cores
SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"
SOLR_JAVA_MEM: "-Xms1440m -Xmx1440m"
SOLR_OPTS: "
-XX:NewSize=592m
-XX:MaxNewSize=592m
"
volumes:
- ./volumes/config/solrconfig.xml:/opt/alfresco-search-services/solrhome/templates/rerank/conf/solrconfig.xml
- ./volumes/data/solr-data:/opt/alfresco-search-services/data
- ./volumes/data/solr-backup/alfresco:/usr/local/tomcat/alf_data/solr6Backup/alfresco
- ./volumes/data/solr-backup/archive:/usr/local/tomcat/alf_data/solr6Backup/archive
ports:
- 8083:8983
Dockerfile:
ARG SEARCH_TAG
FROM alfresco/alfresco-search-services:${SEARCH_TAG}
# COMMON
ARG ALFRESCO_HOSTNAME
ARG SOLR_HOSTNAME
ENV ALFRESCO_HOSTNAME $ALFRESCO_HOSTNAME
ENV SOLR_HOSTNAME $SOLR_HOSTNAME
# Configure Alfresco Service Name
RUN sed -i '/^bash.*/i sed -i "'"s/alfresco.host=localhost/alfresco.host=${ALFRESCO_HOSTNAME}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh && \
sed -i '/^bash.*/i sed -i "'"s/solr.host=localhost/solr.host=${SOLR_HOSTNAME}/g"'" ${DIST_DIR}/solrhome/conf/shared.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh
# Cross Locale
ARG CROSS_LOCALE
ENV CROSS_LOCALE $CROSS_LOCALE
# Enable Cross Locale SOLR Configuration
RUN if [ "$CROSS_LOCALE" == "true" ] ; then \
sed -i '/^bash.*/i sed -i "'"/alfresco.cross.locale.datatype/s/^#//g"'" $DIST_DIR/solrhome/conf/shared.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh; \
fi
# COMMS
ARG ALFRESCO_COMMS
ENV ALFRESCO_COMMS $ALFRESCO_COMMS
# Configure SOLR cores to run in HTTPs mode from template
RUN if [ "$ALFRESCO_COMMS" == "https" ] ; then \
sed -i '/^bash.*/i sed -i "'"s/alfresco.secureComms=none/alfresco.secureComms=https/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh; \
else \
sed -i '/^bash.*/i sed -i "'"s/alfresco.secureComms=https/alfresco.secureComms=none/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \
${DIST_DIR}/solr/bin/search_config_setup.sh; \
fi
Configuración de PRE:
Se realiza directamente en docker:
solr6:
image: 100.000.000.000:5000/solr6:200311
container_name: solr
restart: "always"
depends_on:
- alfresco6
networks:
- aaaa-net
environment:
#Solr needs to know how to register itself with Alfresco
SOLR_ALFRESCO_HOST: "alfresco6"
SOLR_ALFRESCO_PORT: "8080"
#Alfresco needs to know how to call solr
SOLR_SOLR_HOST: "solr6"
SOLR_SOLR_PORT: "8983"
#Create the default alfresco and archive cores
SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"
SOLR_JAVA_MEM: "-Xms1440m -Xmx1440m"
SOLR_OPTS: "
-XX:NewSize=592m
-XX:MaxNewSize=592m
volumes:
- /opt/docker/nfs/alfresco/volumes/data/solr-data:/opt/alfresco-search-services/data
- /opt/docker/nfs/alfresco/volumes/data/solr-backup/alfresco:/usr/local/tomcat/alf_data/solr6Backup/alfresco
- /opt/docker/nfs/alfresco/volumes/data/solr-backup/archive:/usr/local/tomcat/alf_data/solr6Backup/archive
- /opt/docker/nfs/alfresco/volumes/config/solrconfig.xml:/opt/alfresco-search-services/solrhome/templates/rerank/conf/solrconfig.xml
ports:
- 8983:8983 #Browser port
El dockerfile es el mismo.
Los pasos al realizar la implantación:
- Parar todos los servicios.
- Borrar la carpeta del volumen solr-data para la reindexación.
- Arrancar todos los servicios.
¿Es un error conocido? Gracias
Solved! Go to Solution.
Lo único que veo es que la imagen Docker para solr6 es diferente. ¿Habéis probado a usar exactamente la misma imagen Docker para PRE que la que usáis en local?
Lo único que veo es que la imagen Docker para solr6 es diferente. ¿Habéis probado a usar exactamente la misma imagen Docker para PRE que la que usáis en local?
En teoría la imagen es la misma, por un lado en local está configurado en el docker-compose que realice el build del dockerfile, y en PRE primero se contruye el dockerfile, dicha imagen se le hace el pull y luego se referencia a ella.
¿Podría ser algún parámetro mal referenciado?
La forma de construir el docker en PRE es la siguiente:
docker build --build-arg SEARCH_TAG=1.4.0 --build-arg SOLR_HOSTNAME=solr6 --build-arg ALFRESCO_HOSTNAME=alfresco --build-arg ALFRESCO_COMMS=none --build-arg CROSS_LOCALE=true -t solr6:200311
Parece un buen método. ¿Podrías comprobar que los cambios del Dockerfile está efectivamente aplicados cuando arrancas el container?
Puedes entrar al container con algo así cómo:
docker exec -it solr6 sh
Seguimos desconociendo porque al contruir la imagen directamente en PRE no funciona.
Sin embargo al realizar la exportación e importación de la imagen de docker construida en local, funciona correctamente en PRE. Marco como solucionado
Where is this file alfresco-search-services located in Alfresco Community 5.2.
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.