0

Java プログラム名 JavaCANativeDispatcher を使用して、Web アプリケーションで CorrectAddress API をテストしようとしています。この .war ファイルを Linux 環境の jboss アプリケーション サーバーにデプロイしました。

CorrectA の場所は次のとおりです – /apps/jboss-5.1.0.GA/IstCorrectAddress/libCorrectA.so
/apps/jboss-5.1.0.GA/IstCorrectAddress/Data/CorrectAddressData

パスの設定は bashrc にあり、コードは次のとおりです – # .bashrc

# Source global definitions  
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi


# User specific aliases and functions

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/apps/jboss-5.1.0.GA/IstCorrectAddress/libCorrectA.so;
export LD_LIBRARY_PATH;
export CA_DATA=/apps/jboss-5.1.0.GA/IstCorrectAddress/Data;

エンドユーザーがブラウザー (windows から) を介してこのアプリケーションを実行すると、server.log で次のエラーがスローされます。

 2013-07-23 15:06:21,830 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].        [localhost].[/].[Controller]] Servlet.service() for servlet Controller threw exception
java.lang.UnsatisfiedLinkError:         com.gfw.biz.JavaCANativeDispatcher.FindCityCounty([C[C[C[C[C)I
    at com.gfw.biz.JavaCANativeDispatcher.FindCityCounty(Native Method)
    at com.gfw.biz.JavaCANativeDispatcher.CallFindCityCounty(JavaCANativeDispatcher.java:487)
    at com.gfw.jsp.Address.standardize(Address.java:113)
    at com.gfw.jsp.actions.SetMailOptOutsAction.validate(SetMailOptOutsAction.java:385)
    at com.gfw.jsp.actions.SetMailOptOutsAction.execute(SetMailOptOutsAction.java:97)
    at com.gfw.jsp.Controller.processRequest(Controller.java:72)
    at com.gfw.jsp.Controller.doPost(Controller.java:114)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

注 - コマンド java JavaCANativeDispatcher を指定して Linux サーバーでプログラム JavaCANativeDispatcher を実行すると、完全に動作します。このプログラムを実行するためだけに実行しました -

   export CA_DATA=/apps/jboss-5.1.0.GA/IstCorrectAddress/Data  

構成またはセットアップに何かが欠けているようです。提案してください。

4

1 に答える 1

0

tomcat のパスを設定する必要があります。

export PATH=$PATH:$LIBPATH
CLASSPATH=$CLASSPATH:$CA_DATA export LD_LIBRARY_PATH=$LIBPATH export CA_DATA=/apps/apache-tomcat-7.0.42/shared/IstCorrectAddress/Data export JAVA_OPTS="-Djava.library.path= /apps/apache-tomcat-7.0.42/shared"

于 2014-03-24T19:34:07.337 に答える