You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by donald yang <do...@googlemail.com> on 2007/08/24 12:38:27 UTC

How to configure AXIS2 to load the native library in the .aar file

Currently we have some legacy business logic written using C++ and would
like to expose these business logic as web service. So we wrote some java
wrapper class to access the native libraries by JNI. When we package these
native libraries, .dll files, into the .aar file, the system can not found
these .dll in system.library.path and therefore can not successfully deploy
these web services(the error see[2]).  But when we separate these .dll files
from the .aar file and put them into any directory that is in the
system.library.path, the web service can be successfully deployed and work
fine.

Is there anyone know how to configure AXIS2 to load these .dll files that
are packaged into the .aar file? Many thanks in advance.

best regards
donald

[1] environment
OS : windows xp professional sp2
web server: tomcat 5.5
AXIS2: 1.2

[2]Error

24-Aug-2007 10:45:37 org.apache.axis2.deployment.ServiceDeployer deploy
INFO: The example.aar service, which is not valid, caused
java.lang.UnsatisfiedLinkError: no example in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
    at java.lang.Runtime.loadLibrary0(Runtime.java:822)
    at java.lang.System.loadLibrary(System.java:993)
    at com.querix.example.<clinit>(example.java:12)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at org.apache.ws.java2wsdl.SchemaGenerator.<init>(SchemaGenerator.java
:121)
    at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java
:306)
    at org.apache.axis2.deployment.ServiceBuilder.populateService(
ServiceBuilder.java:339)
    at org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(
ServiceGroupBuilder.java:98)
    at
org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(
ArchiveReader.java:106)
    at
org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup
(ArchiveReader.java:140)
    at org.apache.axis2.deployment.ServiceDeployer.deploy(
ServiceDeployer.java:79)
    at org.apache.axis2.deployment.DeploymentEngine.doDeploy(
DeploymentEngine.java:582)
    at org.apache.axis2.deployment.repository.util.WSInfoList.update(
WSInfoList.java:201)
    at org.apache.axis2.deployment.RepositoryListener.update(
RepositoryListener.java:271)
    at org.apache.axis2.deployment.RepositoryListener.checkServices(
RepositoryListener.java:189)
    at org.apache.axis2.deployment.DeploymentEngine.loadServices(
DeploymentEngine.java:110)
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(
WarBasedAxisConfigurator.java:257)
    at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext
(ConfigurationContextFactory.java:74)
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(
AxisServlet.java:486)
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java
:406)
    at org.apache.catalina.core.StandardWrapper.loadServlet(
StandardWrapper.java:1105)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java
:932)
    at org.apache.catalina.core.StandardContext.loadOnStartup(
StandardContext.java:3951)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java
:4225)
    at org.apache.catalina.core.ContainerBase.addChildInternal(
ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java
:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:809)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java
:698)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java
:472)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:310)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java
:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java
:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java
:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)