codelibs / fess

Fess is very powerful and easily deployable Enterprise Search Server.
https://fess.codelibs.org
Apache License 2.0
1k stars 166 forks source link

A JNI error has occurred #1838

Closed 15738519635 closed 5 years ago

marevol commented 6 years ago

more info...

15738519635 commented 6 years ago

When I use the CsvDataStore,it throws the exception. This is my configuration: params :directories=D:/testA fileEncoding=UTF-8 script: url="http://localhost/" + cell1 host="localhost" site="localhost" title=cell2 content=cell3 cache=cell3 digest=cell3 anchor= content_length=cell3.length() last_modified=new java.util.Date()

The error info : 2018-09-15 14:19:34,918 [InputStreamThread] DEBUG Error: A JNI error has occurred, please check your installation and try again 2018-09-15 14:19:34,921 [InputStreamThread] DEBUG Exception in thread "main" 2018-09-15 14:19:34,928 [job_ihTh22UBPTsdGscJmdEw] INFO Crawler: Exit Code=1 - Crawler Process Output: java.lang.NoClassDefFoundError: org/kohsuke/args4j/CmdLineException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: org.kohsuke.args4j.CmdLineException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more Error: A JNI error has occurred, please check your installation and try again Exception in thread "main"

2018-09-15 14:19:34,931 [job_ihTh22UBPTsdGscJmdEw] WARN Failed to evalue groovy script: return container.getComponent("crawlJob").logLevel("info").sessionId("iRTg22UBPTsdGscJz9EH").webConfigIds([] as String[]).fileConfigIds(["iRTg22UBPTsdGscJz9EH"] as String[]).dataConfigIds([] as String[]).jobExecutor(executor).execute(); => {executor=org.codelibs.fess.job.impl.GroovyExecutor@33eb1fe4} org.codelibs.fess.exception.FessSystemException: Exit Code: 1 Output: java.lang.NoClassDefFoundError: org/kohsuke/args4j/CmdLineException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: org.kohsuke.args4j.CmdLineException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more Error: A JNI error has occurred, please check your installation and try again Exception in thread "main"

at org.codelibs.fess.job.CrawlJob.executeCrawler(CrawlJob.java:385) ~[classes/:?]
at org.codelibs.fess.job.CrawlJob.execute(CrawlJob.java:201) ~[classes/:?]
at org.codelibs.fess.job.CrawlJob$execute$2.call(Unknown Source) ~[?:?]
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) ~[groovy-all-2.4.12.jar:2.4.12]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) ~[groovy-all-2.4.12.jar:2.4.12]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) ~[groovy-all-2.4.12.jar:2.4.12]
at Script1.run(Script1.groovy:1) ~[?:?]
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585) ~[groovy-all-2.4.12.jar:2.4.12]
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623) ~[groovy-all-2.4.12.jar:2.4.12]
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594) ~[groovy-all-2.4.12.jar:2.4.12]
at org.codelibs.fess.util.GroovyUtil.evaluate(GroovyUtil.java:41) ~[classes/:?]
at org.codelibs.fess.job.impl.GroovyExecutor.execute(GroovyExecutor.java:31) ~[classes/:?]
at org.codelibs.fess.app.job.ScriptExecutorJob.run(ScriptExecutorJob.java:92) ~[classes/:?]
at org.lastaflute.job.LaJobRunner.actuallyRun(LaJobRunner.java:265) ~[lasta-job-0.5.3.jar:?]
at org.lastaflute.job.LaJobRunner.doRun(LaJobRunner.java:232) ~[lasta-job-0.5.3.jar:?]
at org.lastaflute.job.LaJobRunner.run(LaJobRunner.java:191) ~[lasta-job-0.5.3.jar:?]
at org.lastaflute.job.cron4j.Cron4jTask.runJob(Cron4jTask.java:371) ~[lasta-job-0.5.3.jar:?]
at org.lastaflute.job.cron4j.Cron4jTask.actuallyExecute(Cron4jTask.java:355) ~[lasta-job-0.5.3.jar:?]
at org.lastaflute.job.cron4j.Cron4jTask.lambda$doExecute$6(Cron4jTask.java:258) ~[lasta-job-0.5.3.jar:?]
at org.lastaflute.job.cron4j.Cron4jTask.synchronizedNeighborRunning(Cron4jTask.java:328) [lasta-job-0.5.3.jar:?]
at org.lastaflute.job.cron4j.Cron4jTask.doExecute(Cron4jTask.java:246) [lasta-job-0.5.3.jar:?]
at org.lastaflute.job.cron4j.Cron4jTask.execute(Cron4jTask.java:151) [lasta-job-0.5.3.jar:?]
at it.sauronsoftware.cron4j.RomanticCron4jNativeTaskExecutor$RomanticRunner.run(RomanticCron4jNativeTaskExecutor.java:121) [lasta-job-0.5.3.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
marevol commented 6 years ago

Did Web Crawling work?

15738519635 commented 6 years ago

The Web Crawling and The File Crawling can not work also. It throws the same exception

marevol commented 6 years ago

Environment variables(ex. JAVA_HOME) might not be proper in your environment. It's better to install Fess as Windows service. (Embedded Elasticsearch is not recommended for production use)

15738519635 commented 6 years ago

Thank you very much. It can work normally as the Windows Service.

15738519635 commented 6 years ago

I am really confused for it how the Fess handles the CSV file. If you can give me some advice, I will be grateful,thanks you very much.

marevol commented 6 years ago

I am really confused for it how the Fess handles the CSV file.

more details...

15738519635 commented 6 years ago

In the official website, the description for the CsvDataStore is : Script : Set script values of crawling config as below. The format is key/value. For keys, they are the same as database crawling. You can use values in CSV file as cell[number](cell1 is a first cell). If cell does not exist, it returns null. How does the fess use the script to handle the Csv Cell? Where is it in the code?

15738519635 commented 6 years ago

In addition, is there any setting to index a file by row?

marevol commented 6 years ago

See fess-ds-csv. csvlistdatastore.sh is a sample script to generate test data for Csv File List crawling.