Hi GD,

No idea why maven can't work, or the project structure is a little complex?

Also sure that lucene 2.9 has no problem with this because it does not
depend on SPI.

First you need to check the fat jar file and the file
META-INF/services/o.a.l.codecs.Codec and its counterparts are there.
If no, then the workaround is to have way to add all META-INF/services/xxx
into your fat jar.
If yes, the problem may be with classloader, classloader can't locate the
SPI file within its context, I guess it's not this case.

Hope this help.

Best regards,
Duke
If not now, when? If not me, who?


On Tue, Aug 20, 2013 at 11:09 PM, Gayo Diallo <
gayo.dia...@isped.u-bordeaux2.fr> wrote:

>  Thank you Duke for your help. We have already tried that solution after a
> kindly advise from this mailing list. But we still having the error.
>
> Actually the POM of the project is here
> http://lesimisped.free.fr/servo/pom2.xml. It reuses a project which uses
> Lucene, and the POM is this project is
> http://lesimisped.free.fr/servo/pom.xml.
> With a similar project which uses lucene 2.9 we didn't experienced such an
> issue.
>
> Hope that may help.
>
> Best regards,
> GD
>
> Le 20/08/2013 16:10, Duke DAI a écrit :
>
> The 
> linkhttp://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#ServicesResourceTransformer
> will
> help.
>
> Best regards,
> Duke
> If not now, when? If not me, who?
>
>
> On Mon, Aug 19, 2013 at 8:48 PM, Amal Kammoun <kammoun.ama...@gmail.com> 
> <kammoun.ama...@gmail.com>wrote:
>
>
>  Dear All,
>
> Please do you have any advice regarding the issue we raised  bellow and in
> the previous post?
>
> Thank you for your help.
>
> best regards,
> Amal
>
>
> find here the two links 
> http://lesimisped.free.fr/servo/servicesP1.pnghttp://lesimisped.free.fr/servo/servicesP2.png
>
> When we open org.apache.lucene.codecs.Codec, the both have the same content
> org.apache.lucene.codecs.lucene40.Lucene40Codec
> org.apache.lucene.codecs.lucene3x.Lucene3xCodec
> org.apache.lucene.codecs.lucene41.Lucene41Codec
> org.apache.lucene.codecs.lucene42.Lucene42Codec
>
> Thanks for your help.
>
>
>
> 2013/8/18 Amal Kammoun <kammoun.ama...@gmail.com> <kammoun.ama...@gmail.com>
>
>  Hi Uwe,
>
> Please find here the two 
> linkshttp://lesimisped.free.fr/servo/servicesP1.pnghttp://lesimisped.free.fr/servo/servicesP2.png
>
> When we open org.apache.lucene.codecs.Codec, the both have the same
>
>  content
>
>  org.apache.lucene.codecs.lucene40.Lucene40Codec
> org.apache.lucene.codecs.lucene3x.Lucene3xCodec
> org.apache.lucene.codecs.lucene41.Lucene41Codec
> org.apache.lucene.codecs.lucene42.Lucene42Codec
>
> Thanks for your help.
> Amal
>
>
> 2013/8/16 Uwe Schindler <u...@thetaphi.de> <u...@thetaphi.de>
>
>  Hi,
>
>
>
> There is no screen shot attached to your mail. Please put it somewhere
>
>  in
>
>  the web and send a link.
>
>
>
> Uwe
>
>
>
> -----
>
> Uwe Schindler
>
> H.-H.-Meier-Allee 63, D-28213 Bremen
>
>  <http://www.thetaphi.de/> <http://www.thetaphi.de/> http://www.thetaphi.de
>
> eMail: u...@thetaphi.de
>
>
>
> From: Amal Kammoun [mailto:kammoun.ama...@gmail.com 
> <kammoun.ama...@gmail.com>]
> Sent: Friday, August 16, 2013 6:08 PM
> To: java-user@lucene.apache.org
> Subject: Re: SPI class of type org.apache.lucene.codecs.Codec error
>
>
>
> Thank you,
>
> We are using Eclipse under Linux, and Java 1.7. Maven Shade is used for
> assembling the project (P1) which depends on another project which uses
> Lucene (P2).  P2 uses lucene.core, lucene.queryparser,
> lucene.analyzercommon.
>
> Please find enclosed a screen-shot of the services of the two Jar.
>
> We use to use previous versions of lucene (2.x) and we perform the same
> process of assembling without issue.
>
> Hope this could help.
>
> best regards,
>
> Amal
>
>
>
>
>
> 2013/8/16 Uwe Schindler <u...@thetaphi.de> <u...@thetaphi.de>
>
> Hi,
>
> Maven makes it even simplier to handle this! The problem may be (I am
>
>  not
>
>  sure not sure, because I don’t know your setup):
> It seems that you are using the Maven Shade Plugin to merge all JAR
>
>  files
>
>  into one BIG JAR file. During this step, you may be missing to merge all
> the data correctly in your JAR files. Lucene JARs also contain metadata
>
>  and
>
>  other resources (in addition to class files) in the META-INF folders and
> those are generally not always merged by all those tools, so those must
>
>  be
>
>  copied and merged if multiple META-INF/services with same name exist.
>
>  The
>
>  Maven-Shade-Plugin can do this for you, see:
>
>
>
>
>  
> http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
>
>  Especially:
>
>
>  
> http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#ServicesResourceTransformer
>
>  It is recommended to use the ServicesResourceTransformer option.
>
> Ideally, you should not change or transform JAR files of Lucene at all
> and not merge them, just ship them with your project as is. Please keep
> them separate, only for special use cases like autostarting double-click
> JAR files, merge them otherwise management gets crazy.
>
> In any case, please check your classpath:
> - Are the *unmodified* lucene-core.jar files in it?
> - Don't use crazy classloader hierarchies. Keep all Lucene code together
> in one classloader (so don't place Lucene JAR files outside your webapp,
> but the code using lucene inside a webapp).
> - If you create uber-JARS (which is a bad idea in general), use
> Maven-Shade plugin and configure it correctly. The Uber-JAR file must
> contain a "META-INF/services" folder with some org.apache.lucene.index.*
> files.
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremenhttp://www.thetaphi.de
> eMail: u...@thetaphi.de
>
>
>  -----Original Message-----
> From: Amal Kammoun [mailto:kammoun.ama...@gmail.com 
> <kammoun.ama...@gmail.com>]
> Sent: Friday, August 16, 2013 5:39 PM
> To: java-user@lucene.apache.org
> Subject: SPI class of type org.apache.lucene.codecs.Codec error
>
> Hi,
>
> We are working on a project which uses Lucene 4.2.1. Actually we are
>
>  facing
>
>  an error message "java.lang.
> ExceptionInInitializerError". We are using Maven for assembling the
>
>  project
>
>  and we have a dependency between two projects. When we do the test
> with eclipse it works fine. However, when we incorporate our jar in a
>
>  client
>
>  that is tested outside Eclipse we got the
>
>  java.lang.ExceptionInInitializerError.
>
>  We are doing workaround to overcome the issue since yesterday, we got
>
>  the
>
>  same issue with both versions of Lucene 4.2.0 and 4.2.1.
>
> Have you ever experienced such an issue with maven? Are the newer
> Lucene versions safer from such an issue?
>
> Here is the rest of the message error
> Caused by: 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.
>
> Thank you a lot in advance for your support.
> Best regards,
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>
>
>
> --
>
> Dr Gayo Diallo
> PhD, Associate Professor in Computer Sciences
> [image: Université Bordeaux Segalen] <http://www.univ-bordeauxsegalen.fr> 
> [image:
> ISPED] <http://www.isped.u-bordeaux2.fr>
>
> ISPED, Université Bordeaux Segalen
> Bât. NB, 1er étage, Bureau 30
> 146 rue Léo Saignat 33076 Bordeaux cedex
> France
> Tél. +33 (0)5 57579540▪ Fax +33 (0)556240081
>
> gayo.dia...@isped.u-bordeaux2.fr
> www.gayodiallo.org
> www.univ-bordeauxsegalen.fr
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>

Reply via email to