0

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(array); 行で 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です! 私は確かにsystem.outを作りました。

ファイルmanosは単なるテキストファイルです。

前もって感謝します。:)

4

1 に答える 1

0

以下のいずれかの理由が考えられます..

  1. ポートまたはプロファイルを送信していない可能性があります。
  2. 例外が発生するように、サービス自体が null を返している可能性があります。
于 2013-03-14T11:48:33.070 に答える