2010-12-06 4 views
0

다음과 같은 오류가 발생하여 신청서를 제출했습니다. 나는 그것이 무엇인지, 그리고 그 해결책은 무엇인지 이해할 수 없다. 나Java의 UnsatisfiedLinkError

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

C : \ WINDOWS \ system32이 경로는 창에 있지만 리눅스는 모르겠습니다. – chetan

+0

@chetan 시스템마다 다릅니다. –

0

에게 내가 볼 수있는 가능한 원인을 안내하세요, 당신의 자바 라이브러리 경로에 (당신이 리눅스를 사용하는 경우 또는 otfxjni.so) 더 라이브러리 otfxjni.dll가 없습니다 것입니다. (UnsatisfiedLinkError를의)의 JavaDoc에서

: Java 가상 머신 이 native을 선언 방법의 적절한 네이티브 언어의 정의를 찾아 낼 수없는 경우

에 슬로우됩니다.

+0

otfxjni.so의 경로를 알 수 있습니까? – chetan

+0

라이브러리 경로에 대한 파일 검색을 수행하고 java lib 경로의 경로를 지정하십시오. –

1

이는 "otfxjni"라이브러리를 찾을 수 없음을 의미합니다. 실제로 해당 라이브러리가 있고 올바른 위치에 있는지 확인해야합니다 (물론 OS에 따라 다름).

편집 : 시스템 변수 java.library.path의 값을 인쇄하여 찾고있는 위치를 알 수 있도록 도와줍니다.