0

Linux の Tomcat 7 に C++ ライブラリの Java API ( freeling )をロードしようとしています。jni ライブラリのロード方法に関するいくつかのマニュアルを読んだ後 (コンパイルで LD_LIBRARY_PATH、Wl、rpath、ldconfig を使用...)、ライブラリをロードできません。

最初に Java スタンドアロン アプリケーションを作成し、ライブラリが正しく読み込まれたと言わざるを得ません。axis2 Web サービスでスタンドアロン アプリケーションを変換すると、問題が発生します。私はpojo axis2 アプローチに従ってサービスを構築し、それらを tomcat に埋め込みました。サービスを実行しようとすると、エラーが表示されます。また、system.loadlibrary が機能し、ライブラリの最初のメソッドが呼び出されたときにエラーが返されると言わざるを得ません。

Web アプリケーションを呼び出したときに発生するエラーは次のとおりです。

[ERROR] edu.upc.freeling.freelingJNI.Util_initLocale(Ljava/lang/String;)V
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
        at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
        at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.UnsatisfiedLinkError: edu.upc.freeling.freelingJNI.Util_initLocale(Ljava/lang/String;)V
        at edu.upc.freeling.freelingJNI.Util_initLocale(Native Method)
        at edu.upc.freeling.Util.initLocale(Util.java:39)
        at es.ujaen.metaphor.FreelingNLP.<init>(Unknown Source)
        at es.ujaen.metaphor.FigurativeLanguageWS.identifyFigurativeLanguageLemma(Unknown Source)
        at es.ujaen.metaphor.TestMetaphor.main(Unknown Source)
        ... 29 more

ありがとう

4

0 に答える 0