java - ¿Qué causa err? Una clase SPI de tipo lucene.codecs.Codec name ''Lucene42''
jboss7.x (3)
No se puede averiguar qué está causando ''Una clase SPI de tipo org.apache.lucene.codecs.Codec con el nombre'' Lucene42 ''no existe. Necesita agregar el archivo JAR correspondiente que admite este SPI a su classpath ''
Cualquier ayuda sería apreciada
java.lang.IllegalArgumentException: A SPI class of type org.apache.lucene.codecs.Codec with name ''Lucene42'' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath.The current classpath supports the following names: []
org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:104)
org.apache.lucene.codecs.Codec.forName(Codec.java:95)
org.apache.lucene.codecs.Codec.<clinit>(Codec.java:122)
org.apache.lucene.index.LiveIndexWriterConfig.<init>(LiveIndexWriterConfig.java:118)
org.apache.lucene.index.IndexWriterConfig.<init>(IndexWriterConfig.java:145)
com.damn.fr.rr.rent.getResukt(Man.java:404)
com.damn.fr.rr.handler.pg.setResult(pg.java:103)
com.damn.fr.rr.cmd.del.execute(del.java:19)
com.damn.fr.rr.servlet.PublicController.doPost(controller.java:199)
javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
Ruta de la carpeta de implementación Jboss ''C: / JBAS / modules / org / apache / lucene / main'' y contenido del directorio
jboss-deployment-structure.xml
<sub-deployment name="damn.jar">
<dependencies>
<module name="org.apache.commons.fileupload" />
<module name="org.apache.commons.io" />
<module name="org.apache.commons.lang3" />
<module name="org.apache.commons.validator" />
<module name="org.apache.lucene" />
<module name="net.sf.jasperreports" />
<module name="com.google.gson" />
</dependencies>
</sub-deployment>
module.xml
<module xmlns="urn:jboss:module:1.0" name="org.apache.lucene">
<resources>
<resource-root path="lucene-analyzers-common-4.2.0.jar"/>
<resource-root path="lucene-core-4.2.0.jar"/>
<resource-root path="lucene-queryparser-4.2.0.jar"/>
<resource-root path="lucene-codecs-4.2.0.jar"/>
</resources>
<dependencies>
</dependencies>
segmento de archivos de construcción de hormigas
<pathelement path="${thirdPartyDir}/lucene-analyzers-common-4.2.0.jar" />
<pathelement path="${thirdPartyDir}/lucene-codecs-4.2.0.jar" />
<pathelement path="${thirdPartyDir}/lucene-queryparser- 4.2.0.jar" />
<pathelement path="${thirdPartyDir}/lucene-core-4.2-SNAPSHOT.jar" />
Encuentro algo sobre esto Espero que haya sido útil aunque uso lucene 4.10.2.
Los códecs se configuran en ''org.apache.lucene.codecs.Codec''. Busqué en ''lucene-core-4.10.2.jar'' y hay un archivo ''META-INF / services / org.apache.lucene.codecs.Codec''. Entonces puedes poner el nombre de la clase en el archivo de configuración y lucene lo encontrará. Sin embargo, no es necesario extraer el archivo jar, agregarlo y volver a empaquetar el jar. Simplemente cree un nuevo archivo con la misma estructura de directorios, es decir, ''META-INF / services / org.apache.lucene.codecs.Codec'' en el classpath de Java, por ejemplo, el directorio ''target / classes'', y java encontraría todos los códecs archivo de configuración y cargarlos.
a veces sucede cuando crea un índice usando una versión de lucene, o su índice está dañado. intente eliminar su índice completo y volver a indexarlo.
Por favor agregue el siguiente archivo en
Carpeta: META-INF/services/
Archivo: org.apache.lucene.codecs.Codec
Texto: org.apache.lucene.codecs.lucene54.Lucene54Codec
Revise la solución con una descripción detallada en https://anwaarlabs.wordpress.com/2017/02/25/lucene-an-spi-class-of-type-org-apache-lucene-codecs-codec-with-name- no existe/
Esta solución está definida para Lucene5.4. También funciona para Lucene 4.2. Gracias