2010-12-06 2 views
0

После ошибки я получил в своем приложении. Я не могу понять, что это такое и каково решение? Пожалуйста, руководство меняUnsatisfiedLinkError в java

java.lang.UnsatisfiedLinkError: no otfxjni in java.library.path 
     at java.lang.ClassLoader.loadLibrary(Unknown Source) 
     at java.lang.Runtime.loadLibrary0(Unknown Source) 
     at java.lang.System.loadLibrary(Unknown Source) 
     at com.digitalpersona.onetouch.jni.FeatureExtractionLibrary.<clinit>(FeatureExtractionLibrary.java:16) 
     at com.digitalpersona.onetouch.jni.FeatureExtractor.<clinit>(FeatureExtractor.java:8) 
     at com.digitalpersona.onetouch.processing._impl.DPFPFeatureExtractionFactoryImpl$FeatureExtractionImpl.<init>(DPFPFeatureExtractionFactoryImpl.java:32) 
     at com.digitalpersona.onetouch.processing._impl.DPFPFeatureExtractionFactoryImpl.createFeatureExtraction(DPFPFeatureExtractionFactoryImpl.java:19) 
     at VarifyServer.extractFeatures(VarifyServer.java:121) 
     at VarifyServer.callClient(VarifyServer.java:71) 
     at Bean.callServer(Bean.java:30) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.apache.el.parser.AstValue.invoke(AstValue.java:131) 
     at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) 
     at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) 
     at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:88) 
     at javax.faces.event.ActionEvent.processListener(ActionEvent.java:77) 
     at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:743) 
     at javax.faces.component.UICommand.broadcast(UICommand.java:368) 
     at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447) 
     at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752) 
     at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) 
     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) 
     at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:17) 
     at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:94) 
     at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:54) 
     at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:26) 
     at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24) 
     at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160) 
     at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38) 
     at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19) 
     at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63) 
     at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55) 
     at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:19) 
     at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) 
     at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
     at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
     at java.lang.Thread.run(Unknown Source) 

ответ

1

ваш класс com.digitalpersona.onetouch.jni.FeatureExtractionLibrary использует JNI, чтобы обратиться к родной библиотеке otfxjni (расширение .so или .dll). Однако эта библиотека не находится в вашем библиотечном пути.

Вы можете вручную установить этот путь, добавив аргумент -Djava.library.path=<path to otfxjni file> к вашему процессу выполнения.

0

вероятной причиной я вижу, что нет библиотеки otfxjni.dll (или otfxjni.so, если вы используете Linux) в вашем пути к библиотеке Java.

От JavaDoc (из UnsatisfiedLinkError):

Брошенный, если виртуальная машина Java не может найти подходящее определение на родном языке метода объявленного native.

+0

Могу ли я узнать путь otfxjni.so? – chetan 2010-12-14 09:50:01

+0

Сделайте сканирование файла для пути к библиотеке и поместите путь к пути java lib. – 2010-12-14 21:27:49

1

Это означает, что JVM не может найти библиотеку «otfxjni». Вы должны проверить, действительно ли у вас есть эта библиотека и что она находится в нужном месте (что, конечно же, зависит от ОС).

EDIT: Это поможет вам распечатать значение системной переменной java.library.path, чтобы вы знали, где она находится.

Смежные вопросы