使用ApacheCxf和Eclipse的web服务中的JNI问题 我用C++(MediMULL.DLL)创建一个DLL库,并将其放入文件夹(C:\程序文件(x86)\java jj7\bin)。

使用ApacheCxf和Eclipse的web服务中的JNI问题 我用C++(MediMULL.DLL)创建一个DLL库,并将其放入文件夹(C:\程序文件(x86)\java jj7\bin)。,java,web-services,java-native-interface,tomcat7,cxf,Java,Web Services,Java Native Interface,Tomcat7,Cxf,我用Eclipse创建了一个Java项目,并调用了dll库。在Java应用程序上运行,结果是成功的。我可以得到数据 但我将相同的代码复制到web服务中,得到错误 请帮帮我,谢谢大家 文件目录 网 src com.body.rsservice 调用thirdpartyclass.java CallThirdParty.java 网络内容 调用thirdpartyclass.java package com.body.rsservice; public class CallThirdP

我用Eclipse创建了一个Java项目,并调用了dll库。在Java应用程序上运行,结果是成功的。我可以得到数据

但我将相同的代码复制到web服务中,得到错误

请帮帮我,谢谢大家

文件目录

  • src
    • com.body.rsservice
      • 调用thirdpartyclass.java
      • CallThirdParty.java
  • 网络内容
调用thirdpartyclass.java

package com.body.rsservice;

public class CallThirdPartyClass {

    public native int[] CallThirdPartyDll(double[]    arg_DoubleArray,
            int         arg_SizeofArray,
            boolean     arg_print);

    public CallThirdPartyClass() 
    {
        System.loadLibrary("MediumDll");
    }

}
package com.body.rsservice;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.io.*;
import org.apache.cxf.annotations.GZIP;


@Path("/test")
public class CallThirdParty {

    @GET
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public double[] GetCallThirdParty(){
        double doubleArray[] = {1.1, 2.5, 5,2};

        CallThirdPartyClass callThirdParty = new CallThirdPartyClass();
        callThirdParty.CallThirdPartyDll(doubleArray, 3, true);
        System.out.println("OK");

        int cutOffArray[] = callThirdParty.CallThirdPartyDll(doubleArray, 3, true);

        for (int i = 0; i < cutOffArray.length; ++i)
            System.out.println(cutOffArray[i]);
        return doubleArray;
    }

}
调用thirdparty.java

package com.body.rsservice;

public class CallThirdPartyClass {

    public native int[] CallThirdPartyDll(double[]    arg_DoubleArray,
            int         arg_SizeofArray,
            boolean     arg_print);

    public CallThirdPartyClass() 
    {
        System.loadLibrary("MediumDll");
    }

}
package com.body.rsservice;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.io.*;
import org.apache.cxf.annotations.GZIP;


@Path("/test")
public class CallThirdParty {

    @GET
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public double[] GetCallThirdParty(){
        double doubleArray[] = {1.1, 2.5, 5,2};

        CallThirdPartyClass callThirdParty = new CallThirdPartyClass();
        callThirdParty.CallThirdPartyDll(doubleArray, 3, true);
        System.out.println("OK");

        int cutOffArray[] = callThirdParty.CallThirdPartyDll(doubleArray, 3, true);

        for (int i = 0; i < cutOffArray.length; ++i)
            System.out.println(cutOffArray[i]);
        return doubleArray;
    }

}