I ended up taking the easy route and put all of the jars into
WEB-INF/lib . All seem to be working now,

Best Regards,

Chris Hostetter <hossman_luc...@fucit.org>, 31 Oca 2025 Cum, 21:46
tarihinde şunu yazdı:
>
>
> Welcome to java ClassLoader hell!
>
> : Caused by: java.lang.IllegalArgumentException: resource
> : tokenization/sentence-boundary-model.bin not found.
> : at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:220)
> : ~[?:?]
> : at com.google.common.io.Resources.getResource(Resources.java:196) ~[?:?]
> : at
> : 
> zemberek.tokenization.TurkishSentenceExtractor.fromDefaultModel(TurkishSentenceExtractor.java:51)
>
>         ...
>
> : However, I have tokenization/sentence-boundary-model.bin inside
> : zemberek-tokenization-0.17.1.jar file, which I also copied into lib
> : dir.
>
> You have to be specific: which "lib" directory are you talking about here?
>
> If you mean this...
> https://solr.apache.org/guide/solr/latest/configuration-guide/libs.html
>
> ...i would advise against this approach in general, and instead suggest
> that you put your custom code in a custom module directory...
> https://solr.apache.org/guide/solr/latest/configuration-guide/solr-modules.html
>
> ...or using the "package manager" (but i have very little experience with
> this)...
> https://solr.apache.org/guide/solr/latest/configuration-guide/package-manager.html
>
>
> Doing one of these (instead of <lib .../> directives in your
> solrconfig.xml) *may* fix your problem.
>
>
>
> As to what exactly your problem is...
>
> By the looks of it, based on the first google search result i
> found, I'm guessing this code is hte underlying code you are
> using...
>
> https://github.com/ahmetaa/zemberek-nlp/blob/a9c0f88210dd6a4a1b6152de88d117054a105879/tokenization/src/main/java/zemberek/tokenization/TurkishSentenceExtractor.java#L49
>
> ...which uses the single argument version of
> com.google.common.io.Resources.getResource(...) which is documented to use
> the context classloader -- if you can change that code to use the two
> argument getResource(...) and pass in the TurkishSentenceExtractor.class,
> then it *should* always be the correct classloader that solr has created
> for your plugin/module/SolrCore (regardless of how exactly you've pointed
> Solr at your jar files)
>
> If you can't modify the TurkishSentenceExtractor class directly, you could
> maybe change your Factory so that instead of using
> TurkishSentenceExtractor.DEFAULT you create your own instance of
> TurkishSentenceExtractor passing in the loaded weights yourself.
> (Hmmmm.. Except i think your problem is actaully in the static
> initializers during the classloading of TurkishSentenceExtractor? ... so
> that would probably still be a problem)
>
>
>
> Alternatively: You can end run around all of this and shove your jars into
> the WEB-INF/lib of solr itself -- which should make all the classes
> findable no matter what classloader is used.  There is some (bad)
> precidence set for this in one of the spatial plugins....
>
> https://solr.apache.org/guide/solr/latest/query-guide/spatial-search.html#jts-and-polygons-flat
>
>
>
> -Hoss
> http://www.lucidworks.com/

Reply via email to