2014-07-23 1 views
0

에 대한 예외를 직렬화 할 수 없습니다. Asp.Net 웹 서비스를 사용하려고합니다. ksoap2 라이브러리를 사용하고 있습니다. 하지만 점점 "java.lang.RuntimeException : 직렬화 할 수 없습니다 : [B @ 41eb9c40"예외입니다. 웹 서비스를 통해 파일을 보내려고합니다. 나는 문제가 바이트 배열에 의한 것 같아요. 내 코드는 다음과 같습니다.ksoap2가 [] [

SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); 

    String savePath = MainActivity.this.getFilesDir().getPath() 
      + "/asd.txt"; 
    RandomAccessFile file = new RandomAccessFile(savePath, "r"); 
    byte[] fileByte = new byte[(int) file.length()]; 
    file.readFully(fileByte); 
    file.close(); 

    Request.addProperty("file", fileByte); 
    Request.addProperty("fileName", "fileNameDir.txt"); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(Request); 
    AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
      URL); 
    try { 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapObject response = (SoapObject) envelope.getResponse(); 
     System.out.println(response.getProperty(1).toString()); 
    } catch (Exception e) { 
     System.out.println("exc: " + e); 
    } 

답변

2

수정했습니다. 이 코드 줄을 추가하면 작동했습니다.

MarshalBase64 marshal = new MarshalBase64(); 
    marshal.register(envelope);