Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于发送文件的web方法_Java_Web Services_File - Fatal编程技术网

Java 用于发送文件的web方法

Java 用于发送文件的web方法,java,web-services,file,Java,Web Services,File,我有一个web服务,我希望客户端通过web方法在服务器上发送一个文件,然后读取客户端发送的文件 web方法如下所示: @WebMethod(operationName = "getfile") public void getfile(@WebParam(name = "getfile") DataHandler dh) throws IOException { InputStream in = dh.getInputStream(); StringWriter writer =

我有一个web服务,我希望客户端通过web方法在服务器上发送一个文件,然后读取客户端发送的文件

web方法如下所示:

@WebMethod(operationName = "getfile")
public void getfile(@WebParam(name = "getfile") DataHandler dh) throws IOException {

    InputStream in = dh.getInputStream();
    StringWriter writer = new StringWriter();
    org.apache.commons.io.IOUtils.copy(in, writer, "UTF-8");
    String theString = writer.toString();
    System.out.println(theString);

} 
客户端从这里调用该方法:

public static void main (String args[]) throws IOException, IOException_Exception{

    SOAPService service = new SOAPService();
    SOAPProxy = service.getGetXMLPort();
    File file = new File("C:\\Users\\manos\\Downloads\\manos.txt");
   FileDataSource fd = new FileDataSource(file);
   DataHandler datahandler = new DataHandler(fd);
   InputStream in = datahandler.getInputStream();
   byte [] array = org.apache.commons.io.IOUtils.toByteArray(in);
   SOAPProxy.getfile(array);


}
但是我在SOAPProxy.getfile(数组)行中得到一个NullPointerException

这是错误:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:129)
at $Proxy32.getfile(Unknown Source)
at com.mantsap.getxmlclient.SOAPClient.main(SOAPClient.java:25)
Java结果:1

数组的长度为8!我做了一个系统来确定

manos文件只是一个文本文件


提前感谢。:

可能有以下任何原因

  • 您可能没有发送端口或配置文件
  • 服务本身可能返回null,因此出现异常

  • web方法的调用有些奇怪。该方法的参数是一个Datahandler,当我调用该方法时,netbeans会请求一个字节[]作为参数。你知道吗???