新手求助:Axis中带dll的web服务发布
我用java写了一个服务,这个服务需要通过JNI调用C++的代码,于是我想发布的这个服务就需要带有dll文件了,现在我想用tomcat+Axis采用定制发布的方法发布这个服务,但是动态链接库在本地机上调用没有问题,可是在客户端调用就总是出错:
faultString: java.lang.reflect.InvocationTargetException
我想可能是动态链接库的问题,请问各位大虾该怎么做啊?
我的服务代码:
public class Buffer
{
public native void BufferApp(String inFile, double distance, String outFile);
public static void Buffer(String inFile, double distance, String outFile)
{
System.loadLibrary("Buffer");
new Buffer().BufferApp(inFile, distance, outFile);
}
}
调用的Buffer.dll文件我放在与Buffer.class同一个文件夹下
客户端程序:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
public class BufferClient
{
public static void main(String[] args)
{
try
{
int arc = args.length;
if(arc != 3)
{
System.out.println("Wrong parameter number!");
System.out.println("Buffer [InFilePath] [distance] [OutFilePath]");
}
double distance = Double.valueOf(args[1].toString());
String endpoint = "http://localhost:8080/axis/Buffer.jws";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("urn:Buffer","Buffer"));
call.invoke(new Object[]{args[0],distance,args[2]});
System.out.println("That is OK!");
}catch(Exception e){
e.printStackTrace();
}
}
}