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